我有多个包含日期和测量值的文件。他们的设置完全相同:
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_dfcur_df.plot()
在循环中。
将所有cur_df放在一个“大”DataFrame中似乎是个好主意。既可用于绘图,也可用于以后的统计。考虑到它们的日期不同,理想情况下如何做到这一点?有没有办法“合并”多个DataFrame,但是只在一个底层DataFrame中发生的日期做了什么?
我想我正在寻找一个如下所示的数据框:
YYYY MM DD val1(from1) NaN
YYYY MM DD val2(from1) val2(from2)
YYYY MM DD NaN val3(from2)
从val1的日期起第一行中的日期戳,第二行中val1和val2的日期相同,并且第3行的日期将基于val2
我调查了一下 cur_df.add(cur_df2) 附加两个DataFrame。我不确定是什么 cur_df.combine(cur_df2,...) 会这样做,特别是因为我不确定应该使用什么函数作为第二个参数。感谢您的帮助, 干杯, 克劳斯
答案 0 :(得分:1)
从您的代码段看起来,解析后的日期值应该是索引,每个DataFrame将具有不同列名的值吗?在这种情况下,我认为对DataFrame.combine_first
的迭代调用应该可以解决问题。
另外,你也传递“keep_date_col = True”吗?默认情况下,在将多个日期组件解析为一个时,解析器应该丢弃组件日期列(如果不是那么这是一个bug,请告诉我)。
最佳,
常