我尝试遍历数据帧中的每一行,并执行此操作-calculate_distance_from_SnS(row)
,然后重新分配返回的值(其数字)。
结果是它没有将值保存在特定列下,我想念什么?
例如:
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)
答案 0 :(得分:1)
设置原始DataFrame
的值,而不是通过Series
循环设置:
for i,row in customers.iterrows():
customers.loc[i, 'dist_from_sns'] = calculate_distance_from_SnS(row)
但如果可能的话,最好将DataFrame.apply
与axis=1
一起用于每行的处理:
f = lambda x: calculate_distance_from_SnS(x['lat'], x['long'])
customers['dist_from_sns'] = customers.apply(f, axis=1)