我有一个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
Cost列取平均值,字符串只是作为字符串添加。我尝试在不同的DataFrame中创建日期范围,然后与条件合并,但我没有获得所需的值。
答案 0 :(得分:5)
将日期列转换为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