如何用新索引更新df的索引?

时间:2019-11-12 02:46:11

标签: python pandas dataframe

我目前有一个索引不完整的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的问题,为格式不正确而道歉。

2 个答案:

答案 0 :(得分:2)

您可以尝试使用curl -X POST '<a href="http://jarvas-api.herokuapp.com/location?x=1.0&y=0.5" rel="nofollow">jarvas-api.herokuapp.com/location?x=1.0&y=0.5</a>'

curl: (3) URL using bad/illegal format or missing URL

答案 1 :(得分: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