【发布时间】:2014-10-18 04:01:41
【问题描述】:
我正在做一些地理编码工作,我使用selenium 来筛选我需要的位置地址的 xy 坐标,我将一个 xls 文件导入熊猫数据框并希望使用显式循环来更新不有 xy 坐标,如下所示:
for index, row in rche_df.iterrows():
if isinstance(row.wgs1984_latitude, float):
row = row.copy()
target = row.address_chi
dict_temp = geocoding(target)
row.wgs1984_latitude = dict_temp['lat']
row.wgs1984_longitude = dict_temp['long']
我已阅读Why doesn't this function "take" after I iterrows over a pandas DataFrame? 并完全意识到 iterrow 只为我们提供了一个视图而不是用于编辑的副本,但是如果我真的要逐行更新值怎么办? lambda可行吗?
【问题讨论】:
-
我认为你可以做
rche_df.loc[index, 'wgs1984_latitude'] = dict_temp['lat'],即使用索引来获取原始数据框的正确部分。如果这不起作用,请告诉我,我会尝试找到正确的答案。 -
@Marius 看起来可以工作了,谢谢,另一种选择是将数据帧转换为 dict 并使用普通的 for 循环进行修改
-
这个答案对我不起作用(为什么在地球上不...),但这样做:stackoverflow.com/questions/23330654/…
标签: python loops pandas explicit