【问题标题】:python pandas concat- reindex column labelspython pandas concat-重新索引列标签
【发布时间】:2015-04-24 04:04:48
【问题描述】:

我有两个数据框,我想将它们按列连接在一起。他们没有标题。所以第一个数据框的列标记为 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?

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    重命名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)
    

    【讨论】:

      【解决方案2】:

      您需要传递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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-04
        • 2017-06-30
        • 1970-01-01
        • 2018-10-28
        • 2017-12-14
        • 2012-10-09
        相关资源
        最近更新 更多