繁体   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