使用Pandas合并具有不同维度的多个数据帧

2024-05-15 03:46:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下数据帧(实际上它们超过3个)。在

import pandas as pd
df1 = pd.DataFrame({'head1': ['foo', 'bix', 'bar'],'val': [11, 22, 32]})
df2 = pd.DataFrame({'head2': ['foo', 'xoo', 'bar','qux'],'val': [1, 2, 3,10]})
df3 = pd.DataFrame({'head3': ['xoo', 'bar',],'val': [20, 100]})
# Note that the value in column 'head' is always unique

我要做的是基于head列合并它们。当head的值不存在于一个数据帧中时,我们会给它赋值NA。在

最后会是这样的:

^{pr2}$

我怎样才能用熊猫来达到这个目的呢?在


Tags: 数据importdataframepandasfooasbarval
1条回答
网友
1楼 · 发布于 2024-05-15 03:46:17

您可以使用^{}选择axis=1来连接多个数据帧。在

但是请注意,我首先设置了df1, df2, df3的索引,以使用变量(foo、bar等),而不是默认的整数。在

import pandas as pd

df1 = pd.DataFrame({'head1': ['foo', 'bix', 'bar'],'val': [11, 22, 32]})
df2 = pd.DataFrame({'head2': ['foo', 'xoo', 'bar','qux'],'val': [1, 2, 3,10]})
df3 = pd.DataFrame({'head3': ['xoo', 'bar',],'val': [20, 100]})

df1 = df1.set_index('head1')
df2 = df2.set_index('head2')
df3 = df3.set_index('head3')


df = pd.concat([df1, df2, df3], axis = 1)

columns = ['head1', 'head2', 'head3']
df.columns = columns

print(df)

     head1  head2  head3
bar     32      3    100
bix     22    NaN    NaN
foo     11      1    NaN
qux    NaN     10    NaN
xoo    NaN      2     20

相关问题 更多 >

    热门问题