簡體   English   中英

嘗試將數據追加到Python中的列時出錯

[英]Error while trying to append data to columns in Python

我正在嘗試反轉地址解析數據,為此我在下面查詢

import overpy
import pandas as pd
import numpy as np

df = pd.read_csv("/home/runner/sample.csv")
df.sort_values(by=['cvdt35_timestamp_s'],inplace=True)

api= overpy.Overpass()
box = 0.0005
queries = []
results = []
df['Name']=''
df['Highway'] =''

with open("sample.csv") as f:
  for row in df.index:
    query = 'way('+str(df.gps_lat_dd.iloc[row]-box)+','+str(df.gps_lon_dd.iloc[row]-box)+','+str(df.gps_lat_dd.iloc[row]+box)+','+str(df.gps_lon_dd.iloc[row]+box)+') ["highway"]; (._;>;); out body;'
    queries.append(query)
  for query in queries :
    result = api.query(query)
    results.append(result)
  for result in results:
    for way in result.ways:
        name = way.tags.get("name", "n/a")
        df['Name'].append(name)
    for way in result.ways:  
        df['Highway']= way.tags.get("highway", "n/a")


我正在嘗試將每個結果追加到數據框中的新列,但是以上代碼引發錯誤。

我嘗試使用

for way in result.ways:
        df['Name'] = way.tags.get("name", "n/a")

它給了我所有的“ Westland Avenue”行,結果如下

Brookville Road
Brookville Road
Brookville Road
Brookville Road
Brookville Road
Brookville Road
Brookville Road
Brookville Road
Brookville Road
Brookville Road
Westland Avenue

有人可以幫我嗎

我在一些示例數據上嘗試了您的代碼,但在執行此操作時遇到了此錯誤:

TypeError:無法連接類型為“ <class'int'>”的對象; 僅pd.Series,pd.DataFrame和pd.Panel(不建議使用)objs有效

Series.append()僅接受Series對象。

嘗試使用df['Name'].append(pd.Series(name))

或者更好的方法是,創建這些名稱的列表,將列表轉換為Series ,然后追加。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM