[英]merging DataFrames with pandas
我有多個包含日期和測量值的文件。 它們的設置是相同的:
YYYY MM DD val1
YYYY MM DD val2
YYYY MM DD val3
我使用以下內容將這些文件中的每一個讀入DataFrame
for cur_file in file_list:
cur_df = pa.io.parsers.read_table(os.path.join(data_path, result)
, header=None
, sep='\s*'
, parse_dates=[[0,1, 2]]
, names=['day','month', 'hour', cur_file[:-4]]
, index_col=[0]
)
並非所有文件中的日期都相同。 有時會有一些重疊,但並非總是如此。
我可以通過單獨繪制每個 cur_df
cur_df.plot()
在循環。
將所有cur_df
放在一個“大”DataFrame 中似乎是個好主意。 既用於繪圖,也用於稍后的統計。 考慮到它們的日期不同,這將如何理想地完成? 有沒有辦法“合並”僅在其中一個基礎數據幀中出現的多個數據幀日期?
我想我正在尋找一個看起來像這樣的數據框:
YYYY MM DD val1(from1) NaN
YYYY MM DD val2(from1) val2(from2)
YYYY MM DD NaN val3(from2)
第一行的日期戳取自 val1 的日期,第二行中 val1 和 val2 的日期相同,並根據 val2 取第三行中的日期
我查看了 cur_df.add(cur_df2) 附加了兩個數據幀。 我不確定 cur_df.combine(cur_df2, ...) 會做什么,特別是因為我不確定應該使用哪個函數作為第二個參數。
感謝您的幫助,干杯,克勞斯
從您的代碼片段看起來解析的日期值應該是索引,並且每個 DataFrame 將具有不同列名中的值,對嗎? 在這種情況下,我認為對DataFrame.combine_first
的迭代調用應該可以解決問題。
另外,您是否也傳入了“keep_date_col=True”? 默認情況下,解析器在將多個日期組件解析為一個時應該丟棄組件日期列(如果沒有,那么這是一個錯誤,所以請告訴我)。
最好,
張
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.