【问题标题】:How to update the Index of df with a new Index?如何用新索引更新 df 的索引?
【发布时间】:2020-03-07 17:24:09
【问题描述】:

我目前有一个索引不完整的 df。 像这样:

Idx  bar  baz  zoo
001   A    1    x
003   B    2    y
005   C    3    z
007   A    4    q
008   B    5    w
009   C    6    t

我有完整的Index([001, 002, ...... 010])。 想知道如何将完整的索引补充到不完整的df中。

Idx  bar  baz  zoo
001   A    1    x
002  nan  nan  nan
003   B    2    y
004  nan  nan  nan
005   C    3    z
006  nan  nan  nan
007   A    4    q
008   B    5    w
009   C    6    t 
010  nan  nan  nan

nan 可以是“”,目的是让我确定我目前缺少哪种情况。 这是我第一次问关于stackover的问题,为糟糕的格式道歉。

【问题讨论】:

标签: python pandas dataframe


【解决方案1】:

你可以试试reindex

df=df.reindex(completeIndex)

【讨论】:

    【解决方案2】:

    您可以使用 pandas df reindex 方法轻松完成此操作。

    df.reindex

    您所要做的就是提供一个用作新索引的列表,即

    full_index = ['001','002','003','004','005','006','007','008','009','010']  
    

    然后将其传递给 reindex 方法,如下所示:

    df = df.reindex(full_index)
    

    该方法会自动将 nan 值放入索引不在原始索引中的行中...

    例如:

    df = pd.DataFrame({'bar':['A','B','C','A','B','C'],'baz':[1,2,3,4,5,6],'zoo':['x','y','z','q','w','t']}, index = ['001','003','005','007','008','009']) #your original df
    full_index = ['001','002','003','004','005','006','007','008','009','010']  
    df = df.reindex(full_index)
    

    输出:

         bar  baz  zoo
    001    A  1.0    x
    002  NaN  NaN  NaN
    003    B  2.0    y
    004  NaN  NaN  NaN
    005    C  3.0    z
    006  NaN  NaN  NaN
    007    A  4.0    q
    008    B  5.0    w
    009    C  6.0    t
    010  NaN  NaN  NaN
    

    【讨论】:

      猜你喜欢
      • 2019-12-06
      • 1970-01-01
      • 2016-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-25
      • 1970-01-01
      相关资源
      最近更新 更多