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

Python 使用Pandas合并具有不同维度的多个数据帧,python,pandas,Python,Pandas,我有以下数据帧(实际上它们超过3个) 我想做的是根据head列合并它们。当一个数据帧中不存在ahead的值时,我们会将其分配为NA 最后会是这样的: head1 head2 head3 ------------------------------- foo 11 1 NA bix 22 NA NA bar 32 3 100 xoo NA 2 20

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

我想做的是根据
head
列合并它们。当一个数据帧中不存在a
head
的值时,我们会将其分配为NA

最后会是这样的:

         head1   head2  head3
 -------------------------------
 foo     11      1       NA
 bix     22      NA      NA
 bar     32      3      100
 xoo     NA      2      20
 qux     NA      10     NA
如何使用Pandas实现这一点?

您可以使用选择轴=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
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