我正在读取2500万行和4列(纬度,经度,国家/地区和水平)的CSV文件。过滤掉我不想要的内容后,剩下大约50万行,我想使用Folium对其进行可视化。
Folium需要以以下方式将包含经纬度,经度和纬度列的数据帧作为单独的行传递给它
data = ddf.apply(lambda row: makeList(row['Latitude'], row['Longitude'], row['Level']), axis=1, meta=object)
makeList是一个定义如下的函数-
def makeList(x,y,z):
return [x,y,z]
上面的函数需要大约120秒来计算。我想知道是否有一种方法可以通过使用“ ddf.values.tolist()”或任何其他计算速度更快的方法来加快速度?
谢谢!
答案 0 :(得分:0)
您的帖子标题表明您想要一个列表,因此,也许可以选择大手提包。
但是您的帖子中还包含 Folium需要数据框和... ,因此更多 可能您只需要生成带有上述3列的 DataFrame 。
要生成带有列子集的 DataFrame ,可以运行:
data = ddf[['Latitude', 'Longitude', 'Level']]
然后,您可以例如将其保存在单个CSV文件中:
data.to_csv('your_file.csv', single_file=True)
(可接受的行数为500k),并在另一个程序中作为“普通”( Pandas )DataFrame进行处理。