[英]Creating columns in pandas dataframe and assign values
我有一个 pandas dataframe 如下:
df = pd.DataFrame({'group': [1, 1, 1, 1, 1, 1, 2, 2, 2, 2],
'A2_BAL': [1,2,1,5,7,5,4,1,8,10],
'A1_BAL': [10,20,10,50,70,50,40,10,80,100]})
df
group A2_BAL A1_BAL
0 1 10
1 2 20
2 1 10
3 5 50
4 7 70
5 5 50
6 4 40
7 1 10
8 8 80
9 10 100
以及如下列表
list = [A2, A1]
我需要根据列表中的元素创建列(A2_AGG,A1_AGG)并分配“A2_BAL”和“A1_BAL”的值
我的预期输出应如下所示
group A2_BAL A1_BAL A2_AGG A1_AGG
0 1 10 1 10
1 2 20 2 20
2 1 10 1 10
3 5 50 5 50
4 7 70 7 70
5 5 50 5 50
6 4 40 4 40
7 1 10 1 10
8 8 80 8 80
9 10 100 10 100
我不想对此进行硬编码,因为列表和列名中的元素可能会有所不同。
我尝试了下面的代码,但不知道如何分配“df [i]”
new_list = [t + '_agg' for t in list]
for i in new_list:
df[i] = np.nan
df
如果您使用列表中的字符串作为变量,您可以动态分配列:
for colname in list:
df[f'{colname}_AGG'] = df[f'{colname}_BAL']
这使用 Python 3.6 的f 字符串以简单的方式组合变量和字符串。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.