1

我有多个包含日期和测量值的文件。它们的设置是相同的:

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将所有内容整合到一个“大”数据帧中似乎是个好主意。既用于绘图,也用于以后的统计。考虑到它们的日期不同,理想情况下如何做到这一点?有没有办法“合并”多个仅出现在一个基础 DataFrames 中的 DataFrames 日期?

我想我正在寻找一个看起来像这样的数据框:

YYYY MM DD  val1(from1)  NaN
YYYY MM DD  val2(from1)  val2(from2)
YYYY MM DD  NaN          val3(from2)

它将从 val1 的日期开始在第一行中获取日期戳,在第二行中,val1 和 val2 的日期相同,并且它将根据 val2 获取第 3 行中的日期

我查看了 cur_df.add(cur_df2) 附加了两个数据帧。我不确定 cur_df.combine(cur_df2, ...) 会做什么,特别是因为我不确定应该将哪个函数用作第二个参数。

谢谢你的帮助,干杯,克劳斯

4

1 回答 1

1

从您的代码片段看来,解析的日期值应该是索引,并且每个 DataFrame 将具有不同列名中的值,对吗?在这种情况下,我认为迭代调用DataFrame.combine_first应该可以解决问题。

另外,您是否也传递了“keep_date_col=True”?默认情况下,解析器在将多个日期组件解析为一个时应该丢弃组件日期列(如果不是,那么这是一个错误,所以请告诉我)。

最好的,

于 2012-07-09T18:01:30.437 回答