根据现有列在平面表中创建新变量
Create a new variable in flat tables based on existing column
我得到了以下数据框:
lst=[['01012021','A',5],['01012021','B',-10],['01012021','C',20],['01022021','A',20],['01022021','B',-30],['01022021','C',40]]
df2=pd.DataFrame(lst,columns=['Date','Art','AuM'])
我想通过添加 A、B 和 C 在 Art 列中创建一个新变量 (D)。它应该按日期和 Art 列分组。结果如下所示:
lst=[['01012021','A',5],['01012021','B',-10],['01012021','C',20],['01012021','D',15],['01022021','A',20],['01022021','B',-30],['01022021','C',40],['01022021','D',30]]
df2=pd.DataFrame(lst,columns=['Date','Art','AuM'])
感谢您的帮助。
您可以groupby
Date
, assign
'D'
as a new column Art
to the result and append
原始数据框:
df2.append(df2.groupby('Date', as_index=False).AuM.sum().assign(Art='D'))
如果需要,您可以通过附加 .sort_values(['Date', 'Art'])
:
进行排序
Date Art AuM
0 01012021 A 5
1 01012021 B -10
2 01012021 C 20
0 01012021 D 15
3 01022021 A 20
4 01022021 B -30
5 01022021 C 40
1 01022021 D 30
我得到了以下数据框:
lst=[['01012021','A',5],['01012021','B',-10],['01012021','C',20],['01022021','A',20],['01022021','B',-30],['01022021','C',40]]
df2=pd.DataFrame(lst,columns=['Date','Art','AuM'])
我想通过添加 A、B 和 C 在 Art 列中创建一个新变量 (D)。它应该按日期和 Art 列分组。结果如下所示:
lst=[['01012021','A',5],['01012021','B',-10],['01012021','C',20],['01012021','D',15],['01022021','A',20],['01022021','B',-30],['01022021','C',40],['01022021','D',30]]
df2=pd.DataFrame(lst,columns=['Date','Art','AuM'])
感谢您的帮助。
您可以groupby
Date
, assign
'D'
as a new column Art
to the result and append
原始数据框:
df2.append(df2.groupby('Date', as_index=False).AuM.sum().assign(Art='D'))
如果需要,您可以通过附加 .sort_values(['Date', 'Art'])
:
Date Art AuM
0 01012021 A 5
1 01012021 B -10
2 01012021 C 20
0 01012021 D 15
3 01022021 A 20
4 01022021 B -30
5 01022021 C 40
1 01022021 D 30