【发布时间】:2018-08-11 05:17:31
【问题描述】:
我有这两个从在线数据中创建和清理的 pandas 数据框,我试图根据它们的日期合并它们,这些日期都是按月计算的。但是,第一个数据集的日期是该月的最后一天,而第二个数据集是否基于该月的第一天。
# data1
0 1987-01-01 63.752
1 1987-02-01 64.152
2 1987-03-01 64.488
3 1987-04-01 64.995
# data2
0 1987-01-31 1115.10
1 1987-02-30 1095.63
2 1987-03-30 1036.19
3 1987-04-30 1057.08
如果我有缺少几天的日常数据,我通常会通过这样的方式合并它们
data3 = pd.merge(left=data1, left_on='Date', right=data2, right_on='Date')
但在这种情况下,它们永远不会匹配,即使它们都是相似的日期。
我将如何“告诉”Pandas 根据仅相隔几天的日期组合数据集,并仅按“月 - 年”命名每个数据?我不知道从哪里开始。
【问题讨论】:
-
您可以只在第二个数据框中添加一天,因为一个月的最后一天总是跟着一个月的第一天。但是,10 月有 31 天,因此 2009-10-30 不是该月的最后一天。
-
^这是一个很好的观点。如果这只是输入错误,那么我建议使用 datetime 模块编辑和排序日期并查看 strptime:docs.python.org/2/library/datetime.html 然后您可以在月份中加 1 或减 1(取决于您想要的方向)和然后将日期放在日期内。
-
这个问题有帮助吗? stackoverflow.com/q/21201618/3639023
-
在您的问题中提供Minimal, Complete, Verifiable Example。在您的情况下,两个示例 DataFrame 没有重叠。还有预期的结果是什么?