嗨,我有以下 df:
sentence osm_id place
0 #SP486 in località Pianezzo, SENSO UNICO ALTER... 62053.0 ponte
1 In provincia di Modena frana sulla strada prov... 22165.0 samone
2 Provincia di Modena: Pavullo, frana lungo la s... 62053.0 ponte
3 Provincia di Modena: Pavullo, frana sulla sp 4... 22165.0 #
4 Provincia di Modena: Prignano, i lavori su una... NaN NaN
我想在城市名称后添加纬度和经度列,而在有 NaN 和 # 值的地方我想将新单元格留空或值为 0。
我尝试了什么:
series = pd.Series(table['place'])
if series.apply(lambda x: x==x):
table['Lat'] = 0
table['Lon'] = 0
elif series.apply(lambda x: x!=x):
table['Lat'] = table.place.apply(lambda x: coord_map[x][1])
table['Lon'] = table.place.apply(lambda x: coord_map[x][0])
我得到的错误:
Traceback (most recent call last):
File "c:/Users/user/GeoParsing/main.py", line 136, in <module>
if series.apply(lambda x: x==x):
File "C:\Users\user\GeoParsing\venv\lib\site-packages\pandas\core\generic.py", line 1442, in __nonzero__
raise ValueError(
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
答案 0 :(得分:1)
你可以试试:
table['Lat'] = table.place.map(lambda x: 0 if (pd.isna(x) or (x == '#')) else coord_map[x][1])
table['Lon'] = table.place.map(lambda x: 0 if (pd.isna(x) or (x == '#')) else coord_map[x][0])