我想在数据帧的每一行上应用一个函数。我使用apply()但它传递一个Series对象,因此不传递列名称。有没有办法使用.apply()并保留列名?
答案 0 :(得分:2)
如果你想逐行应用函数:
对于要将整行传递给函数的数据框中的每一行,并且在要使用列名称调用值的函数中,您可以这样做:
# df
name value
0 AA 1
1 BB 2
2 CC 3
def function_2(row):
return row['value'] * 2
df['col_b'] = df.apply(lambda row: function_2(row), axis=1)
输出:
name value col_b
0 AA 1 2
1 BB 2 4
2 CC 3 6