我有两个数据帧
df1 =
city.population city.sys.population cnt cod message tmp
0 0 38 200 0.1642 1
df2=
A B C D E tmp
0 0 38 200 0.1642 1
0 0 38 200 0.1642 1
0 0 38 200 0.1642 1
0 0 38 200 0.1642 1
我想合并/连接tmp上的两个数据帧,结果应该是
A B C D E tmp population cnt cod
0 0 38 200 0.1642 1 0 38 200
0 0 38 200 0.1642 1 0 38 200
0 0 38 200 0.1642 1 0 38 200
0 0 38 200 0.1642 1 0 38 200
但是我只得到第一条记录的population
、cnt
和cod
的值。有没有办法让第一条记录中的值为population
cnt
和cod
字段的所有行填充
df3 = pd.merge(df2, df1, on='tmp', how='outer')
应该给你想要的。如果您熟悉这个术语,这相当于SQL中的完全外部联接。你知道吗这样做的目的是将两个数据帧df1和df2合并在一起,使得
df3.tmp
列等于df1.tmp和df2.tmp中的值的并集(即,如果执行df1.tmp + df2.tmp
,将得到的值的列表)。因此,df2中具有df2.tmp == 1
的任何行都将从df1获取信息,其中df1.tmp == 1
如果您希望同时包含df1和df2中的所有数据,这将起作用。这样,如果您在df1中有一列的值在'tmp'中不在df2中,那么您的新dataframe将为列a、B、C、D、E和df1中的数据提供'NaN'值,但是合并中不会丢失任何数据。你知道吗如果df1=
则df3=
如果您想要df1和df2的其他组合(例如,您不关心df1中不在df2中的任何值),您可以更改“how”参数。有关更多信息,请参阅此处的熊猫文档: http://pandas.pydata.org/pandas-docs/stable/merging.html#brief-primer-on-merge-methods-relational-algebra
可以用append连接两个数据帧。你试过了吗?你知道吗
如果有用就告诉我。你知道吗
有关更多信息,请参阅文档 http://pandas.pydata.org/pandas-docs/version/0.15.2/merging.html
相关问题 更多 >
编程相关推荐