我有一个太大的数据框,其中包含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
答案 0 :(得分:1)
您可以创建日期系列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
答案 1 :(得分:0)
df.groupby(['MONTH']).mean().reset_index()