Python 熊猫-intermerge数据帧

Python 熊猫-intermerge数据帧,python,pandas,Python,Pandas,我有一个数据框架,详细介绍了一些商店收入的统计数据: #Create data data = {'Day': [1,1,2,2,3,3], 'Where': ['A','B','A','B','B','B'], 'What': ['x','y','x','x','x','y'], 'Dollars': [100,200,100,100,100,200]} index = range(len(data['Day'])) columns = ['D

我有一个数据框架,详细介绍了一些商店收入的统计数据:

#Create data
data = {'Day': [1,1,2,2,3,3],
        'Where': ['A','B','A','B','B','B'],
        'What': ['x','y','x','x','x','y'],
        'Dollars': [100,200,100,100,100,200]}

index = range(len(data['Day']))

columns = ['Day','Where','What','Dollars']


df = pd.DataFrame(data,  index=index, columns=columns)
df

以及一个数据框,其中包含存储区的一些信息(比如说经度和纬度):

创建数据 我想将第二个数据帧的信息添加到第一个数据帧中。我的最佳尝试是:

df3=df
df3['Lon'] = df2[df2.Where == df.Where, 'Lon']
但这带来了一个错误:

ValueError:只能比较标签相同的系列对象


正确的方法是什么?

试试这个,你只需要一个
pd.merge

df3=pd.merge(df1,df2, on='Where')

有关更多详细信息,请访问,

也许您会发现有用?基本上,您至少需要
df.merge(df2[['Where','Lon']],on='Where',how='left')
。使用
map
可以将单个列添加到另一个数据帧,该数据帧比传统的SQL样式联接快,但链接中也介绍了这一点。您应该更喜欢DataFrame.merge,而不是顶级合并:
df3=pd.merge(df1,df2, on='Where')