【发布时间】:2018-06-25 13:46:05
【问题描述】:
我有多个 (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([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。
【问题讨论】: