通过从一个 CSV 中提取值来追加另一个 csv



我有一个大的CSV,其中有几列,其中一列是地址列。在另一个CSV中,给出了带有纬度和经度的地址。我想匹配地址并拉取纬度和经度并写下我的第一个大型csv。

我确实尝试使用熊猫加入和合并,但它们与索引列合并,我需要在地址 csv 中搜索地址,然后将 lat-lon 拉到大 csv 并创建两个新列。

我发现了一些类似的问题,但那是Ruby :Here:我想使用Python和Pandas。

Large.csv 
col1, col2, col3, col4, col5, col6, addr
234, 453,34535,342,634,636, Ken street
562, 345,6753,835,864,967,St Pauls
addr.csv 
addr,lat,lon
baker street, lat1, lon1
ken street, lat2,lon2
paul street, lat3, lon3
St Pauls, lat4, lon4
Ouput.csv 
col1, col2, col3, col4, col5, col6, addr, lat, lon
234, 453,34535,342,634,636, Ken street,lat2,lon2
562, 345,6753,835,864,967,St Pauls,lat4,lon4

输入文件太大,无法在 Excel 工作表中加载并进行 Vlookup实现输出的最简单方法是什么。

我正在使用python 3.x版本和熊猫的更新版本感谢每一个帮助 提前感谢

这是

您通常的做法,地址数据已修复:

import sys
if sys.version_info[0] < 3: 
    from StringIO import StringIO
else:
    from io import StringIO
import pandas as pd
large = StringIO('''col1, col2, col3, col4, col5, col6, addr
234, 453,34535,342,634,636, Ken street
562, 345,6753,835,864,967,St Pauls''')
addr = StringIO('''addr,lat,lon
baker street, lat1, lon1
ken street, lat2,lon2
paul street, lat3, lon3
St Pauls, lat4, lon4''')
df_large = pd.read_csv(large, sep=',')
df_large.columns = df_large.columns.str.strip()
df_large.addr = df_large.addr.apply(lambda x: x.lower().strip())
df_addr = pd.read_csv(addr, sep=',')
df_addr.addr = df_addr.addr.apply(lambda x: x.lower().strip())
df_large = pd.merge(df_large, df_addr, how='left', on='addr')

您可以对 2 个数据框进行内部合并。然后df.to_csv('Ouput.csv'(将输出数据帧写入csv文件。

>>> df1
   col1  col2   col3  col4  col5  col6        addr
0   234   453  34535   342   634   636  Ken street
1   562   345   6753   835   864   967    St Pauls
>>> df2
           addr   lat   lon
0  baker street  lat1  lon1
1    Ken street  lat2  lon2
2   paul street  lat3  lon3
3      St Pauls  lat4  lon4
>>> df = pd.merge(df1, df2, how='inner', on='addr')
>>> df
   col1  col2   col3  col4  col5  col6        addr   lat   lon
0   234   453  34535   342   634   636  Ken street  lat2  lon2
1   562   345   6753   835   864   967    St Pauls  lat4  lon4

最新更新