【发布时间】:2020-06-29 03:38:18
【问题描述】:
我已经完成了数据框聚合,我想添加一个新列,如果行中的 2020 年的值 > 0,它将放置 1,否则放置 0。
这是我的代码 和数据帧的负责人
df['year'] = pd.DatetimeIndex(df['TxnDate']).year # add column year
df['client'] = df['Customer'].str.split(' ').str[:3].str.join(' ') # add colum with 3 first word
Datedebut = df['year'].min()
Datefin = df['year'].max()
#print(df)
df1 = df.groupby(['client','year']).agg({'Amount': ['sum']}).unstack()
print(df1)
df1['nb2020']= np.where( df1['year']==2020, 1, 0)
最后一行错误是:KeyError: 'year'
谢谢
【问题讨论】:
-
年份是一行而不是一列?好像是这样,我只是想确认一下
-
在原始df中,它是一个列
-
在使用“group by”之前,您是否尝试将新列添加到原始 df?否则,您可以使用“转换”将一列添加回原始 df,请参见此处:stackoverflow.com/questions/37189878/…
-
将 iloc 与年份索引一起使用。应该工作。
标签: python pandas-groupby