Python 从循环中的字符串列表创建新列名

Python 从循环中的字符串列表创建新列名,python,pandas,Python,Pandas,假设我在熊猫中有以下列名: [“A”、“B”] 我的问题是,我想使用一个for循环,从列表中获取列名,并创建一个新列名,其中包括列表中的部分元素 在每次迭代中,我希望创建以下内容: a = ["A", "B"] for elements i in a: elements + "_c" = SOME FUNCTION column <df.elements> a=[“a”,“B”] 对于a中的元素i: 元素+“\u c”=某个函数列 这将导致添加两个名为A_c和B_c

假设我在熊猫中有以下列名: [“A”、“B”]

我的问题是,我想使用一个for循环,从列表中获取列名,并创建一个新列名,其中包括列表中的部分元素

在每次迭代中,我希望创建以下内容:

a = ["A", "B"]
for elements i in a:
    elements + "_c" = SOME FUNCTION column <df.elements>   
a=[“a”,“B”]
对于a中的元素i:
元素+“\u c”=某个函数列
这将导致添加两个名为A_c和B_c的新列。

您可以在循环中使用:

或用于新的
df
,然后用于原始:

df1 = df[a].apply(SOME FUNCTION).add_suffix('_c')
df = df.join(df1)
样本:

df = pd.DataFrame({'A':[4,5,4,5,5,4],
                   'B':[7,8,9,4,2,3],
                   'C':[1,3,5,7,1,0]})

print (df)
   A  B  C
0  4  7  1
1  5  8  3
2  4  9  5
3  5  4  7
4  5  2  1
5  4  3  0

def FUNCTION(x):
    return x + 10

a = ["A", "B"]

for i in a:
    df[i + "_c"] =  df[i].apply(FUNCTION) 

print (df)
   A  B  C  A_c  B_c
0  4  7  1   14   17
1  5  8  3   15   18
2  4  9  5   14   19
3  5  4  7   15   14
4  5  2  1   15   12
5  4  3  0   14   13


非常感谢。它很好用。我的问题是,我必须在函数中指定一个参数,该参数的名称将包含列的名称。这取决于需要什么-如果需要在函数中串联使用
x
,如果需要在函数中使用
x.name
df = pd.DataFrame({'A':[4,5,4,5,5,4],
                   'B':[7,8,9,4,2,3],
                   'C':[1,3,5,7,1,0]})

print (df)
   A  B  C
0  4  7  1
1  5  8  3
2  4  9  5
3  5  4  7
4  5  2  1
5  4  3  0

def FUNCTION(x):
    return x + 10

a = ["A", "B"]

for i in a:
    df[i + "_c"] =  df[i].apply(FUNCTION) 

print (df)
   A  B  C  A_c  B_c
0  4  7  1   14   17
1  5  8  3   15   18
2  4  9  5   14   19
3  5  4  7   15   14
4  5  2  1   15   12
5  4  3  0   14   13
df = df.join(df[a].apply(FUNCTION).add_suffix('_c'))
print (df)
   A  B  C  A_c  B_c
0  4  7  1   14   17
1  5  8  3   15   18
2  4  9  5   14   19
3  5  4  7   15   14
4  5  2  1   15   12
5  4  3  0   14   13