【问题标题】:merge two dataframes by following a specific pattern按照特定模式合并两个数据框
【发布时间】:2020-12-14 07:37:56
【问题描述】:

我有两个 df :

date=pd.date_range(start = '8/1/2020 7:00:00', end ='8/1/2020 7:15:00',freq='min')
df1=pd.DataFrame({'date':date})

df2=pd.DataFrame({'date':[dt.datetime(2020,8,1,7,0),dt.datetime(2020,8,1,7,6),dt.datetime(2020,8,1,7,12)],'count':[5,6,1]})

我想按照df3 中的模式将 df2 合并到 df1 中:

   date                     count
0  2020-01-08 07:00:00      5
1  2020-01-08 07:01:00      5
2  2020-01-08 07:02:00      5
3  2020-01-08 07:03:00      5
4  2020-01-08 07:04:00      5
5  2020-01-08 07:05:00      5
6  2020-01-08 07:06:00      6
7  2020-01-08 07:07:00      6
8  2020-01-08 07:08:00      6
9  2020-01-08 07:09:00      6
10 2020-01-08 07:10:00      6
11 2020-01-08 07:11:00      6
12 2020-01-08 07:12:00      1
13 2020-01-08 07:13:00      1
14 2020-01-08 07:14:00      1
15 2020-01-08 07:15:00      1

PANDAS 有这样的功能吗?

谢谢!

【问题讨论】:

  • 这是一个错字!我改变它

标签: python pandas datetime join merge


【解决方案1】:
date=pd.date_range(start = '1/8/2020 7:00:00', end ='1/8/2020 7:15:00',freq='min')
df1=pd.DataFrame({'date':date})


df2=pd.DataFrame({'date':[dt.datetime(2020,1,8,7,0),dt.datetime(2020,1,8,7,6),dt.datetime(2020,1,8,7,12)],'count':[5,6,1]})
#I've corrected your input df2, months<-> days position

df3= df2.merge(df1,on='date',how='outer')
df3=df3.sort_values(by='date').ffill()
print(df3)
                  date  count
0  2020-01-08 07:00:00    5.0
3  2020-01-08 07:01:00    5.0
4  2020-01-08 07:02:00    5.0
5  2020-01-08 07:03:00    5.0
6  2020-01-08 07:04:00    5.0
7  2020-01-08 07:05:00    5.0
1  2020-01-08 07:06:00    6.0
8  2020-01-08 07:07:00    6.0
9  2020-01-08 07:08:00    6.0
10 2020-01-08 07:09:00    6.0
11 2020-01-08 07:10:00    6.0
12 2020-01-08 07:11:00    6.0
2  2020-01-08 07:12:00    1.0
13 2020-01-08 07:13:00    1.0
14 2020-01-08 07:14:00    1.0
15 2020-01-08 07:15:00    1.0

【讨论】:

    【解决方案2】:

    只运行:pd.merge_asof(df1, df2, on='date')

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-20
      • 2019-08-18
      • 1970-01-01
      • 2021-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多