Concat不识别跨连接列的共享索引

2024-04-29 21:13:33 发布

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

我试图concat2 csv文件,数据df1b(2214,4)和df2b(2262,4)。这两个文件中的大部分索引是相同的,因此我希望这些行重叠,如果索引是唯一的,其他行将由NaN填充。示例如下:

东风1B

Index Col1,  2,  3     
A .      Data in all columns     
B .      Data in all columns      
D .      Data in all columns      
E .      Data in all columns

东风2B

索引,ColX,Y,Z

A .      Data in all columns     
B .      Data in all columns      
C .      Data in all columns      
E .      Data in all columns

预期最终浓度:

索引,Col1,2,3,x,y,z

A . Data in all columns

B . Data in all columns

C . NaN, NaN, NaN, Data, data, data 

D . Data in all columns

E . Data in all columns

当我使用:df3 = pd.concat([df1b, df2b], axis=1)concat时,结果是一个维度为(4800,4)的文件,其中concat没有识别出两个文件之间实际上有很大一部分索引是相同的。有人知道为什么会发生这种情况吗

df = pd.read_csv('XX.csv')

df1 = df[['Gene', 'Young_Q1', 'Young_Q2', 'Young_Q3']]

df1a = df1.to_csv('Young_Q.csv', index=False)

df1b = pd.read_csv('Young_Q.csv', index_col='Gene', encoding='utf-8')

df2 = df[['OldQ_Gene', 'Old_Q1', 'Old_Q2', 'Old_Q3']]

df2a = df2.to_csv('Old_Q.csv', index=False)

df2b = pd.read_csv('Old_Q.csv', index_col='OldQ_Gene', encoding='utf-8')


df3 = pd.concat([df1b, df2b], axis=1)

结果示例如下所示:

Df3型

A .  NaN, NaN, NaN,  Data, Data, Data

B .  NaN, NaN, NaN,  Data, Data, Data 

D .  NaN, NaN, NaN,  Data, Data, Data 

E .  NaN, NaN, NaN,  Data, Data, Data 

A .  Data, Data, Data, NaN, NaN, NaN 

B .  Data, Data, Data, NaN, NaN, NaN  

C .  Data, Data, Data, NaN, NaN, NaN  

E .  Data, Data, Data, NaN, NaN, NaN

Tags: columns文件csvindataindexnanall