首页 > 解决方案 > Python通过从另一个数据框匹配来创建新列

问题描述

我有一个带有县名的主要数据框。我有另一个带有县名及其纬度的数据框。我想在主 df 中创建一个新的纬度列以匹配县名。主 df 有一些不匹配的名称。

主要代码:

df = 
            County
0           Maricopa
1       Hillsborough
2              Henry
3               Ogle
4           Mitchell
5           Melbourne

url='https://public.opendatasoft.com/explore/dataset/us-zip-code-latitude-and-longitude/download/?format=csv&timezone=America/New_York&lang=en&use_labels_for_header=true&csv_separator=%3B' 
uszip=pd.read_csv(url,sep=";")
df['Latitude'] = df['County'].map(dict(uszip[['City','Latitude']]))

df = 
            County Latitude
0         Maricopa      NaN
1     Hillsborough      NaN
2            Henry      NaN
3             Ogle      NaN
4         Mitchell      NaN
5         Melbourne     NaN

标签: pythonpandasdataframe

解决方案


您是否希望在您的主要 df 和另一个纬度列中获取所有县名,该列在您的纬度 df 中有一个匹配的国家?

您的纬度 df 到您的主 df 的左连接将为您提供您正在寻找的结果。

df_main = pd.merge(df_main, df_latitude[['country', 'latitude']], on='country', how='left')

推荐阅读