[英]How to merge rows in Pandas Dataframe based on date range
我有一个具有两列的日期和字符串值的DataFrame,如下所示:
date Name Cost
0 2010-09-15 ABC XYZ 100
1 2010-09-16 PQR RTS 30
2 2010-09-17 DEF GHI 20
3 2010-09-18 LKJ POD 80
4 2010-09-19 WER HDF 10
5 2010-09-20 WFG MNB 30
我想合并日期为3天的行,如下所示:
date Name Cost
0 2010-09-15 ABC XYZ PQR RTS DEF GHI 50
1 2010-09-18 LKJ POD WER HDF WFG MNB 40
成本列采用平均值,而字符串仅作为字符串添加。 我尝试在不同的DataFrame中创建日期范围,然后与条件合并,但没有得到所需的值。
您可以使用resample
的日期列转换为之后在3天左右功能datetime
。
df.set_index('date', inplace=True)
df.index = pd.to_datetime(df.index)
df = df.resample('3D', kind='period', convention='start').agg(\
{'Name': lambda x: ' '.join(x), 'Cost' : 'mean'})
产量
df
Out[35]:
Name Cost
date
2010-09-15 ABC XYZ PQR RTS DEF GHI 50
2010-09-18 LKJ POD WER HDF WFG MNB 40
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.