Python 按轴0中的单列组合数据帧
我想组合几个pandaPython 按轴0中的单列组合数据帧,python,pandas,Python,Pandas,我想组合几个pandaDataFrames,例如:(所有输入都有一个第一列p加上一个唯一命名的第二列。) 输出应该是这样的:(它应该有和输入一样多的列,加上一列表示p,并且在任何输入中,一列p中的每个值应该只有一行。) 一个简单的pd.concat([df_b3,df_ka,df_kb])给了我太多的行和NaNs: P b3 ka kb 0 l1 + NaN NaN 0 l1 NaN + NaN 1 l2 NaN + NaN 0 l
DataFrames
,例如:(所有输入都有一个第一列p
加上一个唯一命名的第二列。)
输出应该是这样的:(它应该有和输入一样多的列,加上一列表示p
,并且在任何输入中,一列p
中的每个值应该只有一行。)
一个简单的pd.concat([df_b3,df_ka,df_kb])
给了我太多的行和NaN
s:
P b3 ka kb
0 l1 + NaN NaN
0 l1 NaN + NaN
1 l2 NaN + NaN
0 l2 NaN NaN +
1 l3 + NaN NaN
2 l3 NaN + NaN
1 l3 NaN NaN +
熊猫如何才能最好地实现这一点呢?我认为需要为以下内容中的align byp
列提供每个DataFrame
:
我认为需要为以下列中的align byp
列提供每个DataFrame
:
你可以
别忘了选择其他选项,如“内部”、“外部”。。。等等。你可以
别忘了选择其他选项,如“内部”、“外部”。。。等等
P b3 ka kb
0 l1 + + NaN
1 l2 NaN + +
2 l3 + + +
P b3 ka kb
0 l1 + NaN NaN
0 l1 NaN + NaN
1 l2 NaN + NaN
0 l2 NaN NaN +
1 l3 + NaN NaN
2 l3 NaN + NaN
1 l3 NaN NaN +
dfs = [df_b3, df_ka, df_kb]
dfs1 = [x.set_index('P') for x in dfs]
#same as
#dfs1 = [df_b3.set_index('P'), df_ka.set_index('P'), df_kb.set_index('P')]
df = pd.concat(dfs1, axis=1).rename_axis('P').reset_index()
print (df)
P b3 ka kb
0 l1 + + NaN
1 l2 NaN + +
2 l3 + + +
df_b3.join(df_ka, on='P')