如何通过名称将值分配给特定的行和列?

时间:2019-10-21 11:31:29

标签: python pandas

我尝试遍历数据帧中的每一行,并执行此操作-calculate_distance_from_SnS(row),然后重新分配返回的值(其数字)。 结果是它没有将值保存在特定列下,我想念什么?

例如:

DF示例

A   B   C
1   10  0
2   12  0

我想为每一行执行此功能C=A+B并进入此状态:

A   B   C
1   10  11
2   12  14

我这样做了:


def calculate_distance_from_SnS(row):

使用DF行并使用2个列进行计算。



for i,row in customers.iterrows():
    row['dist_from_sns'] = calculate_distance_from_SnS(row)

1 个答案:

答案 0 :(得分:1)

设置原始DataFrame的值,而不是通过Series循环设置:

for i,row in customers.iterrows():
    customers.loc[i, 'dist_from_sns'] = calculate_distance_from_SnS(row)

但如果可能的话,最好将DataFrame.applyaxis=1一起用于每行的处理:

f = lambda x: calculate_distance_from_SnS(x['lat'], x['long'])
customers['dist_from_sns'] = customers.apply(f, axis=1)