簡體   English   中英

將數據幀與熊貓合並

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM