python - 比较两个 pandas Dataframe 的日期并在日期相似时添加值?

标签 python datetime pandas dataframe

我有两个具有不同行数的数据框,一个具有每日值,第二个具有每小时值。我想比较它们,如果日期匹配,那么我想在同一天的每小时值之前添加每日值。数据框是;

import pandas as pd
df1 = pd.read_csv('C:\Users\ABC.csv')
df2 = pd.read_csv('C:\Users\DEF.csv')
df1 = pd.to_datetime(df1['Datetime'])
df2 = pd.to_datetime(df2['Datetime'])
df1.head()
Out [3]     
    Datetime            Value
0   2016-02-02 21:00:00 0.6
1   2016-02-02 22:00:00 0.4
2   2016-02-02 23:00:00 0.4
3   2016-03-02 00:00:00 0.3
4   2016-03-02 01:00:00 0.2
df2.head()
Out [4]     Datetime    No of people
       0    2016-02-02  56
       1    2016-03-02  60
       2    2016-04-02  91
       3    2016-05-02  87
       4    2016-06-02  90

我想要的是这样的;

    Datetime            Value No of People
0   2016-02-02 21:00:00 0.6   56
1   2016-02-02 22:00:00 0.4   56
2   2016-02-02 23:00:00 0.4   56
3   2016-03-02 00:00:00 0.3   60
4   2016-03-02 01:00:00 0.2   60

知道如何使用 Pandas 在 Python 中执行此操作吗?请注意,可能会缺少一些日期。

最佳答案

您可以将df1 DF的索引设置为df1.Datetime.dt.date,然后您可以将其与df2连接:

In [46]: df1.set_index(df1.Datetime.dt.date).join(df2.set_index('Datetime')).reset_index(drop=True)
Out[46]:
             Datetime  Value  No_of_people
0 2016-02-02 21:00:00    0.6            56
1 2016-02-02 22:00:00    0.4            56
2 2016-02-02 23:00:00    0.4            56
3 2016-03-02 00:00:00    0.3            60
4 2016-03-02 01:00:00    0.2            60

您可能希望在调用 join() 函数时使用 how='left' 参数

关于python - 比较两个 pandas Dataframe 的日期并在日期相似时添加值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37529587/

相关文章:

python - 回文的正则表达式

python - 使用 Docker 在 Raspberry pi 中安装 Noetic 时出现的问题

隐藏 Python Kivy TextInputs 的 Android 屏幕键盘

datetime - 如何更改日期范围选择器的样式?

php - Symfony2 Date.TimeZone() 问题

python - 将 Pandas DataFrame 与 In-Memory Feather 相互转换

python - 极值的 logit 和反 logit 函数

java - SQL 服务器,HQL : How to compare SQL server datetime column field to date

python pandas dataframe 连接两个数据框

python - FutureWarning in using iteritems() in use .iloc() pandas