私は同様の質問が尋ねられ応答したのを見ました。しかし、私の特定のニーズに答える答えはありません。インポートされたcsvsからのパンダデータフレームの再帰的なマージ
私のニーズに合わせて調整した次のコードは、ファイルと関連する列を正常にインポートします。ただし、dfに行を追加し、キーに基づいてこれらの列をマージしません。
import glob
import pandas as pd
import os
path = r'./csv_weather_data'
all_files = glob.glob(os.path.join(path, "*.csv"))
df = pd.concat(pd.read_csv(f, skiprows=47, skipinitialspace=True, usecols=['Year','Month','Day','Hour','DBT'],) for f in all_files)
典型的なデータ構造は以下の通りです:
Year Month Day Hour DBT
1989 1 1 0 7.8
1989 1 1 100 8.6
1989 1 1 200 9.2
私は次のことを達成したいと思います:
輸入
dfをパンダにフォルダに含まれるすべてのCSVファイル
最初の4列をdatetime値の1列にマージする
インポートされたcsvをマージし、新しく作成したdatetime値をインデックスとして使用し、DBT列をインポートします。各DBT列はインポートされたcsvの名前です(天気ファイルの乾球温度DBT) 。
アドバイスはありますか?
あなたはpd.read_csv(... 'と最初の3つの列をマージすることができ、parse_dates = { '日':[0、 1、2]}) ')が、100または200の時間は何を意味しますか?明らかにこれは24時間の計量ではありません。 – chrisaycock
ありがとうございます。 00は分(200は午前2時、2200は午後10時)です。 構文解析日付は完全に機能しました! 再帰的マージを設定するにはどうしたらいいですか? * pd.concat *とは対照的に、空のデータフレームから始まる行をマージして最初に空ではないデータフレームがあることを理解しています – Andreuccio
'補助変数'を設定する方法はありますか( '* f1 * ')、ループサイクル内で最初のfの値が割り当てられますか? – Andreuccio