首页 文章

将不同数据类型的pandas数据框导出到python中的csv

提问于
浏览
2

我有一个gps参数数据框与不同类型的数据(整数,对象,浮点数和字符串),如下所示:

ID              time                speed pdop longitude latitude
0 356363050613605 2017-02-20T17:04:40 210 3.051 8.81640 44.75045
1 356363050637620 2017-02-21T13:44:38 172 60.00 9.41286 45.48268

然后通过使用geopy包我已经使用以下代码解析纬度和经度协调到地理位置

import geopy
from geopy.geocoders import Nominatim
geolocator = Nominatim()

def f(row):
   loc = str(row['latitude']) + ',' +str(row['longitude'])
   locations = geolocator.reverse(loc)
   return location

df['address'] = df.apply(lambda row: f(row), axis=1)

它将地址列返回到具有完整地址的数据帧,并将坐标作为字符串返回 .

ID              time                speed pdop longitude latitude address
0 356363050613605 2017-02-20T17:04:40 210 3.051 8.81640 44.75045 (Viale del Lavoro, Zona Industriale C.I.P.I.A.N., Novi Ligure, AL, PIE, 15067, Italia), (44.7524715, 8.8122644)
1 356363050637620 2017-02-21T13:44:38 172 60.00 9.41286 45.48268 (Strada Provinciale 14 Rivoltana, Liscate, MI, LOM, 20066, Italia), (45.4821247, 9.4118136)

现在的问题是我正在尝试使用 "df.to_csv('output.csv')" 将数据框导出到csv文件,但它一直返回以下错误:

TypeError:str返回非字符串(类型NoneType)

我甚至尝试了以下代码,只有在指定返回地址列时才会起作用,如下所示:

with open('outpu.csvt', 'w') as file:
    a = csv.writer(file)
    data = df['address']
    a.writerows(data)

在尝试导出整个数据框时,它会返回一个空文件 . 任何帮助如何将整个数据框导出到csv文件?

1 回答

  • 1

    我根本不熟悉geolocator,但看起来你的函数正在返回元组的列表(或元组) . 如果您改为返回类似的内容:

    return ','.join(location[0])
    

    这应该返回一个字符串到 address 列,该列应该可以轻松写入csv .

相关问题