python pandas concat- reindex列标签

时间:2015-02-22 21:31:01

标签: python pandas

我有两个数据帧,我想要逐列连接。他们没有标题。因此,第一个数据帧的列标记为0-356。第二个df是单列,标记为0。

DF1

    0  1   2  3 ..356
1   1   1  2  3   4
2   5   7  8  9   10
3   11  12 13 14  15

DF2

    0   
1   76
2   77
3   78

当我与concat结合时

DF3=pd.concat([DF1, DF2],axis=1) 

我得到两个标记为0的列

DF3

   0   0   1  2  3 ...356
1  76  1   1  2  3   4
2  77  5   7  8  9   10
3  78  11  12 13 14  15

有两个" 0"列显然会在分析后期引起我的问​​题。

如何更改或重新编制索引,以便我在DF3中的列标记为0-357?

2 个答案:

答案 0 :(得分:3)

你需要传递ignore_index=True,如果发生冲突,这将重新索引rhs:

In [39]:

pd.concat([df,df1], axis=1, ignore_index=True)
Out[39]:
    0   1   2   3   4   5
1   1   1   2   3   4  76
2   5   7   8   9  10  77
3  11  12  13  14  15  78

与默认值比较,如果您未将参数默认值传递给False

In [40]:

pd.concat([df,df1], axis=1)
Out[40]:
    0   1   2   3   4   0
1   1   1   2   3   4  76
2   5   7   8   9  10  77
3  11  12  13  14  15  78

答案 1 :(得分:0)

concat之后重命名列,如下所示:

import numpy as np
import pandas as pd
df1 =pd.DataFrame(np.random.rand(3,1))
df2 =pd.DataFrame(np.random.rand(3,356))
df3 =pd.concat([df1,df2],axis=1)
df3.columns = range(357)