将具有不同数据类型的 pandas 数据框导出到 python 中的 csv
Export pandas dataframe with different data types to csv in python
我有一个具有不同类型数据(整数、对象、浮点数和字符串)的 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)
其中 return 是数据框的地址列,完整地址和坐标为字符串。
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 文件,但它保持 return以下错误:
TypeError: str returned non-string (type NoneType)
我什至尝试了以下代码,该代码仅在指定 return 地址列时起作用,如下所示:
with open('outpu.csvt', 'w') as file:
a = csv.writer(file)
data = df['address']
a.writerows(data)
而在尝试导出整个数据框时,它 return 是一个空文件。对如何将整个数据框导出到 csv 文件有帮助吗??
我根本不熟悉地理定位器,但您的函数似乎是 returning 元组列表(或元组)。如果您 return 编辑了类似的内容:
return ','.join(location[0])
那应该 return 一个字符串到您的 address
列,应该很容易写入 csv。
我有一个具有不同类型数据(整数、对象、浮点数和字符串)的 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)
其中 return 是数据框的地址列,完整地址和坐标为字符串。
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 文件,但它保持 return以下错误:
TypeError: str returned non-string (type NoneType)
我什至尝试了以下代码,该代码仅在指定 return 地址列时起作用,如下所示:
with open('outpu.csvt', 'w') as file:
a = csv.writer(file)
data = df['address']
a.writerows(data)
而在尝试导出整个数据框时,它 return 是一个空文件。对如何将整个数据框导出到 csv 文件有帮助吗??
我根本不熟悉地理定位器,但您的函数似乎是 returning 元组列表(或元组)。如果您 return 编辑了类似的内容:
return ','.join(location[0])
那应该 return 一个字符串到您的 address
列,应该很容易写入 csv。