假设我有一个数据框,其中日期为索引。每行包含有关该日期某个事件的信息。问题是在所述日期可能会有多个事件。 这是一个示例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?
答案 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