【问题标题】:how to append a column in csv如何在csv中追加一列
【发布时间】:2020-05-28 05:05:19
【问题描述】:
Import geocorder as rg
for lat in data['Lat']:
    for lon in data['Lon']:
        #print(city)
        key ='#key'
        city = (rg.bing([lat, lon], 
                method='reverse',key=key).city)
        data['City']=data.append(city)

尝试在 CSV 文件中添加列时显示错误。

【问题讨论】:

    标签: python-3.x csv data-science


    【解决方案1】:

    如果您使用pandas,您可以使用row.at[rowidx, 'colname'] = value为特定行添加列

    如果你提到data的数据类型,会有所帮助

    编辑: 正如您确认您使用的是pandas,这里是准确访问行并添加列的代码。

    import pandas as pd
    data = pd.read_csv('uber.csv')
    print(data.info())
    for index, row in data.iterrows():
       lat = row['Lat']
       lon = row['Lon']
       data.at[index, 'City'] = 'CITY' # Change to your rg function
    print(data.info())
    data.to_csv('newuber.csv')
    

    而且,如果你熟悉lambda 函数,你也可以这样做:

    import pandas as pd
    data = pd.read_csv('uber.csv')
    data['City'] = data.apply(lambda x: rg.bing([x['Lat'], x['Lon']], method='reverse',key=key).city, axis=1)
    data.to_csv('newuber.csv')
    

    【讨论】:

    • 你能详细说明一下吗
    • 谢谢兄弟....有点问题.....服务器有限制所以有一个错误。代码没有完全运行
    • 是的,根据 Bing 文档,基于您的计划的 GeoCode 查找存在限制。但是,geocorder 似乎也支持其他提供商,例如 Google。试一试。
    【解决方案2】:

    你能展示你的整个代码和你的错误信息吗?如果我在 python 中处理 csv,我将使用 pandas 库,如果您也在使用 pandas,也许我可以提供帮助。

    【讨论】:

    • import pandas as pd import numpy as np import geocoder as rg data=pd.read_csv('/root/Desktop/uber.csv') for lat in data['Lat']: for lon in data['Lon']: #print(city) key ='#key' city = (rg.bing([lat, lon], method='reverse',key=key).city) data['City']=data.append(city) TypeError: cannot concatenate object of type '';只有 Series 和 DataFrame obj 是有效的
    • 我使用的是 uber 数据,所以 lat 和 lon 是数字,所以我想转换成对应的 city_names 并添加到 City 列
    猜你喜欢
    • 1970-01-01
    • 2019-12-01
    • 2021-02-16
    • 1970-01-01
    • 2021-06-10
    • 1970-01-01
    • 2017-02-06
    • 2020-03-26
    • 1970-01-01
    相关资源
    最近更新 更多