如何根据某些值的相似性更新数据框列?

时间:2017-12-14 02:57:35

标签: python pandas dataframe cross-reference

我的用户数据框架上有凌乱的城市(有些也缺失了)名称如下:

a = [['New York', '10460', '21', '321321.12' ], 
['Brooklyn', '11219', '03', '2432567.52'], [' ', '11363', '320', '34325.543]]
userdf = pd.DataFrame(a, columns=['City', 'Post Code', 'Lat', 'Long])
userdf

现在,我想根据邮政编码修复City,Lat和Long列中的名称,方法是查看位置Dataframe中的相应邮政编码,其中包含以下官方详细信息:

location = [['Bronx', '10460', '21', '321321.12' ], 
['Brooklyn', '11219', '03', '2432567.52'], [' ', '11363', '320', '34325.543]]
locationdf = pd.DataFrame(location, columns=['City', 'Post Code', 'Lat', 'Long])

我尝试了多种方式,但他们都在各方面都失败了。如何根据条件userdf等于locationdf,使用userdf['Post Code']中的值更新locationdf['Post Code']中的某些列。

1 个答案:

答案 0 :(得分:1)

您可以使用.loc。例如,如果您想要更改城市。

userdf['City'] = locationdf.loc[userdf['Post Code']==locationdf['Post Code']]['City']