使用带有重复轴

时间:2018-03-12 15:20:21

标签: python pandas dataframe

假设我有一个数据框,其中日期为索引。每行包含有关该日期某个事件的信息。问题是在所述日期可能会有多个事件。 这是一个示例DataFrame,df2:

     one  two
1/2  1.0  1.0
1/2  1.0  1.0
1/4  3.0  3.0
1/5  NaN  4.0

我想在数据框中添加缺少的日期,而我曾经能够使用.loc来完成它。现在.loc引发了以下警告:

  

将带有任何缺失标签的列表 - 喜欢传递给.loc或[]会引发   将来的KeyError,您可以使用.reindex()作为替代。

这是我的代码(它有效,但会引发警告):

# I want to add any missing date- in this example, 1/3.
df2.loc[["1/2","1/3","1/4","1/5"]]

     one  two
1/2  1.0  1.0
1/2  1.0  1.0
1/3  NaN  NaN
1/4  3.0  3.0
1/5  NaN  4.0

我已经尝试过使用reindex,但是我的索引包含重复的值,所以它不起作用:

#This doesn't work
df2.reindex(["1/2","1/3","1/4","1/5"])
  

ValueError:无法从重复轴重新索引

我该怎么做才能更换旧的loc?

1 个答案:

答案 0 :(得分:2)

join

的一种方式
df.join(pd.DataFrame(index=["1/2","1/3","1/4","1/5"]),how='outer')
Out[193]: 
     one  two
1/2  1.0  1.0
1/2  1.0  1.0
1/3  NaN  NaN
1/4  3.0  3.0
1/5  NaN  4.0