繁体   English   中英

在 pandas dataframe 中创建列并赋值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM