【发布时间】:2020-06-21 10:35:55
【问题描述】:
我有两个数据框。第一个称为“人口统计”,如下所示:
date_month date_week population village country
2020-04 2020-04-06 1000 V1 C1
2020-04 2020-04-06 1400 V2 C1
2020-04 2020-04-06 1500 V2 C2
2020-04 2020-04-06 1200 V3 C2
2020-04 2020-04-13 1001 V1 C1
2020-04 2020-04-13 1401 V2 C1
2020-04 2020-04-13 1501 V2 C2
2020-04 2020-04-13 1201 V3 C2
2020-04 2020-04-20 1002 V1 C1
2020-04 2020-04-20 1402 V2 C1
2020-04 2020-04-20 1502 V2 C2
2020-04 2020-04-20 1202 V3 C2
2020-04 2020-04-27 1003 V1 C1
2020-04 2020-04-27 1403 V2 C1
2020-04 2020-04-27 1503 V2 C2
2020-04 2020-04-27 1203 V3 C2
如您所见,人口统计数据的每一行都有一个每周频率。第二个数据集称为“收入”,有每月频率,如下所示:
date_month village country income person
2020-04 V1 C1 10 John
2020-04 V2 C1 8 Mike
2020-04 V2 C2 9 Sarah
2020-04 V3 C2 10 Adam
我想生成一个包含人口和收入列的每周频率数据框,同时还保留人员。像这样:
date_month village country income person date_week population
2020-04 V1 C1 10 John 2020-04-06 1000
2020-04 V2 C1 8 Mike 2020-04-06 1400
2020-04 V2 C2 9 Sarah 2020-04-06 1500
2020-04 V3 C2 10 Adam 2020-04-06 1200
2020-04 V1 C1 10 John 2020-04-13 1001
2020-04 V2 C1 8 Mike 2020-04-13 1401
2020-04 V2 C2 9 Sarah 2020-04-13 1501
2020-04 V3 C2 10 Adam 2020-04-13 1201
2020-04 V1 C1 10 John 2020-04-20 1002
2020-04 V2 C1 8 Mike 2020-04-20 1402
2020-04 V2 C2 9 Sarah 2020-04-20 1502
2020-04 V3 C2 10 Adam 2020-04-20 1202
2020-04 V1 C1 10 John 2020-04-27 1003
2020-04 V2 C1 8 Mike 2020-04-27 1403
2020-04 V2 C2 9 Sarah 2020-04-27 1503
2020-04 V3 C2 10 Adam 2020-04-27 1203
我怎样才能有效地做到这一点?假设 date_month 列中有匹配项,我似乎需要“乘以”然后将每月数据集与频率数据集中的周数连接起来?
【问题讨论】:
-
试试这个:newdf = pd.merge(demographics, income, on=['date_month','village','country'])
标签: python pandas dataframe join merge