平均日期熊猫

时间:2020-11-09 19:38:04

标签: pandas dataframe pandas-groupby

我有一个太大的数据框,其中包含x,y,年,月,如何创建一个新列,其平均天数为 输入

X/Y/YEAR/MONTH
1/2/1990/2
1/2/1990/5
1/2/1990/6
4/8/2020/1
4/8/2020/2
4/8/2020/3
4/8/2020/4
3/7/2020/8

我尝试每月使用有条件的,但是这样做的代码太大了,还有其他方法吗? 预期产量

X/Y/YEAR/MONTH/DAYS
1/2/1990/2/14
1/2/1990/5/15.5
1/2/1990/6/
4/8/2020/1/15.5
4/8/2020/2/14
4/8/2020/3/15.5
4/8/2020/4/15
3/7/2020/8/15.5

2 个答案:

答案 0 :(得分:1)

您可以创建日期系列d并将MonthEnddt.day一起使用并除以2

from pandas.tseries.offsets import MonthEnd
d = pd.to_datetime(df['YEAR'].astype(str) + '-' + df['MONTH'].astype(str) + '-01')
df['Days'] = (d + MonthEnd(1)).dt.day / 2
df
Out[1]: 
   X  Y  YEAR  MONTH  Days
0  1  2  1990      2  14.0
1  1  2  1990      5  15.5
2  1  2  1990      6  15.0
3  4  8  2020      1  15.5
4  4  8  2020      2  14.5
5  4  8  2020      3  15.5
6  4  8  2020      4  15.0
7  3  7  2020      8  15.5

答案 1 :(得分:0)

df.groupby(['MONTH']).mean().reset_index()