Python 将多个数据帧合并在一起
我有多个(n)数据帧,行长可变,每个数据帧有3列。我只需要每个数据帧的第一列,所以我使用df.drop删除了其他列。Python 将多个数据帧合并在一起,python,pandas,csv,Python,Pandas,Csv,我有多个(n)数据帧,行长可变,每个数据帧有3列。我只需要每个数据帧的第一列,所以我使用df.drop删除了其他列。 我想将它们合并到一个包含n列的数据帧中。 我用pd.concat合并 df1.drop(columns=['col2' ,'col3']).to_csv('df1.csv', sep=';') df2.drop(columns=['col2', 'col3']).to_csv('df2.csv', sep=';') pd.concat([pd.concat([
我想将它们合并到一个包含n列的数据帧中。 我用pd.concat合并
df1.drop(columns=['col2' ,'col3']).to_csv('df1.csv', sep=';')
df2.drop(columns=['col2', 'col3']).to_csv('df2.csv', sep=';')
pd.concat([pd.concat([df1.drop(columns=['col2','col3']),
df2.drop(columns=['col2','col3'])] ,axis=1)])\
.to_csv('merged.csv', sep=';')
它将以下输出作为csv文件提供:
col1 (df1) col1 (df1)
0 0.0
1 0.055
2 0.096
3 0.131
2074 70.997
2075 71.002
2076 71.065
2077 71.101
因此,您可以看到它只是将列添加为行。例如,第3行在第2列中为空。第1列2074行为空。
我以为axis=1可以解决这个问题,但它没有
预期产出:
col1 (df1) col1 (df1)
0 0.0 70.997
1 0.055 71.002
2 0.096 71.065
3 0.131 71.101
如果我尝试
axis=1,ignoreIndex=True
我的列名将更改为0和1 在由和参数创建的数据帧中需要相同的索引值重置索引(drop=True)
:
将df2的索引更改为与df1相同
df2.index=df1.index
df1['col1(df2)']=df2.col1
df1.rename(columns={'col1':'col1(df1)'})
Out[7]:
col1(df1) col1(df2)
0 0.000 70.997
1 0.055 71.002
2 0.096 71.065
3 0.130 71.101
df2.index=df1.index
df1['col1(df2)']=df2.col1
df1.rename(columns={'col1':'col1(df1)'})
Out[7]:
col1(df1) col1(df2)
0 0.000 70.997
1 0.055 71.002
2 0.096 71.065
3 0.130 71.101