あるデータフレームの月次データを別のデータフレームの日次データとマージするパンダ

user9505772

1980-01-01から2018-02-28(1日ずつ増加)のインデックスと1つのデータ列(毎日の株価など)を持つcsvファイル(たとえばA.csv)があります。

1980-01から2018-02までのインデックス(1か月増加)と1つのデータ列(毎月の貿易収支など)を持つ別のcsvファイル(たとえばB.csv)があります。

このような場合、(毎日のインデックスを維持することにより)B.csvをA.csvにマージするにはどうすればよいですか?つまり、日次インデックス+日次株価の1つの列+月次貿易収支の別の列(月の各日で同じ貿易収支値を維持することにより、月次貿易収支を日次貿易収支に拡張する必要があります)。

jpp

これはで行うことができますpandas

これを行う1つの方法は、両方の日付列をdatetimeオブジェクトに変換し、を使用pd.Series.mapして1つのテーブルから別のテーブルへのマッピングを実行することです。

月次データには日が指定されていないため、マッピングでは月の最初の日に正規化します。

import pandas as pd

# first read in the 2 tables into dataframes
# df_daily = pd.read_csv('daily.csv')
# df_monthly = pd.read_csv('monthly.csv')

df_daily = pd.DataFrame({'Date': ['1980-01-01', '1980-01-02', '1980-01-03'],
                         'Value': [1, 2, 3]})

df_monthly = pd.DataFrame({'Month': ['1979-12', '1980-01', '1980-03'],
                           'Value': [100, 200, 300]})

# convert to datetime objects
df_daily['Date'] = pd.to_datetime(df_daily['Date'])
df_monthly['Month'] = pd.to_datetime(df_monthly['Month']+'-01')

# perform mapping after normalising to first day of month
df_daily['MonthValue'] = df_daily['Date'].map(lambda x: x.replace(day=1))\
                                         .map(df_monthly.set_index('Month')['Value'])

#         Date  Value  MonthValue
# 0 1980-01-01      1         200
# 1 1980-01-02      2         200
# 2 1980-01-03      3         200

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

パンダデータフレームで月次データを年次データに変換する方法は?

分類Dev

2つのデータフレームをパンダとマージする

分類Dev

パンダ:あるデータフレームから別のデータフレームに日時のタイムラインを課す

分類Dev

1つのパンダデータフレームを別のデータフレームにマージし、最初のデータフレームに存在する値を2番目のデータフレームから削除します

分類Dev

2つのパンダデータフレームを共通データとマージする

分類Dev

データフレームを、最初のデータフレームの定数値を持つ別のデータフレームとマージする

分類Dev

データフレームパンダの次の行と行をマージします

分類Dev

別のデータフレームからパンダのデータフレームに行を追加する

分類Dev

別のデータフレームからパンダのデータフレームに行を追加する

分類Dev

別のデータフレームからパンダのデータフレームを抽出する

分類Dev

パンダのデータフレームを別のデータフレーム内に保存する

分類Dev

条件付きで別のデータフレームにデータフレームを追加するパンダ

分類Dev

別のデータフレームに基づいてパンダデータフレームを生成する

分類Dev

パンダ2つのデータフレーム、ある種のマージ

分類Dev

2列のパンダデータフレームをマージする

分類Dev

パンダデータフレームのリストをマージする

分類Dev

パンダで2つのデータフレームをマージする

分類Dev

複数のデータフレームパンダをマージする

分類Dev

パンダのデータフレームをマージする(列名なし)

分類Dev

ずれたパンダのデータフレームをマージする

分類Dev

パンダで2つのデータフレームをマージする

分類Dev

2つのデータフレームをマージするパンダ

分類Dev

パンダ: 2 つのデータフレームをマージする

分類Dev

複数のパンダデータフレームをマージする

分類Dev

パンダで2つのデータフレームをマージする

分類Dev

パンダのデータフレームを辞書にマージする

分類Dev

パンダ:データフレームのマージと比較

分類Dev

パンダのデータフレームのデータを操作する

分類Dev

パンダのデータフレームを別のタブに表示する

Related 関連記事

  1. 1

    パンダデータフレームで月次データを年次データに変換する方法は?

  2. 2

    2つのデータフレームをパンダとマージする

  3. 3

    パンダ:あるデータフレームから別のデータフレームに日時のタイムラインを課す

  4. 4

    1つのパンダデータフレームを別のデータフレームにマージし、最初のデータフレームに存在する値を2番目のデータフレームから削除します

  5. 5

    2つのパンダデータフレームを共通データとマージする

  6. 6

    データフレームを、最初のデータフレームの定数値を持つ別のデータフレームとマージする

  7. 7

    データフレームパンダの次の行と行をマージします

  8. 8

    別のデータフレームからパンダのデータフレームに行を追加する

  9. 9

    別のデータフレームからパンダのデータフレームに行を追加する

  10. 10

    別のデータフレームからパンダのデータフレームを抽出する

  11. 11

    パンダのデータフレームを別のデータフレーム内に保存する

  12. 12

    条件付きで別のデータフレームにデータフレームを追加するパンダ

  13. 13

    別のデータフレームに基づいてパンダデータフレームを生成する

  14. 14

    パンダ2つのデータフレーム、ある種のマージ

  15. 15

    2列のパンダデータフレームをマージする

  16. 16

    パンダデータフレームのリストをマージする

  17. 17

    パンダで2つのデータフレームをマージする

  18. 18

    複数のデータフレームパンダをマージする

  19. 19

    パンダのデータフレームをマージする(列名なし)

  20. 20

    ずれたパンダのデータフレームをマージする

  21. 21

    パンダで2つのデータフレームをマージする

  22. 22

    2つのデータフレームをマージするパンダ

  23. 23

    パンダ: 2 つのデータフレームをマージする

  24. 24

    複数のパンダデータフレームをマージする

  25. 25

    パンダで2つのデータフレームをマージする

  26. 26

    パンダのデータフレームを辞書にマージする

  27. 27

    パンダ:データフレームのマージと比較

  28. 28

    パンダのデータフレームのデータを操作する

  29. 29

    パンダのデータフレームを別のタブに表示する

ホットタグ

アーカイブ