Pandas 平均日期

Pandas 平均日期,pandas,dataframe,pandas-groupby,Pandas,Dataframe,Pandas Groupby,我有一个太大的数据框,包含x,y,年,月,我如何创建一个新的列,以月平均天数为单位 输入 我试着每月使用条件if,但是代码太大了,还有其他方法吗? 预期产量 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 您可以创建日期序列d,并将MonthEnd与dt.day一起使用

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

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

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

您可以创建日期序列
d
,并将
MonthEnd
dt.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

似乎您正在查找
groupby().mean()
。您的预期输出是什么?预期输出是每个月的平均天数,例如1-->15…..您如何获得前两行中的14天或15.5天?X和Y代表什么?X和Y是坐标,其想法是根据月数估计N
2020
是闰年,因此2月应该是
29/2=14.5
。请看我的输出。
df.groupby(['MONTH']).mean().reset_index()
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