我在研究Pandas的一些命令时,遇到了一个问题:当我使用reindex命令时,我的数据被NaN值所替换。下面是我的代码:
>>>import pandas as pd
>>>import numpy as np
>>>frame1=pd.DataFrame(np.arange(365))
然后,我为它的日期赋予了一个索引:
>>>frame1.index=pd.date_range(pd.datetime(2017, 4, 6), pd.datetime(2018, 4, 5))
然后我重新索引:
>>>broken_frame=frame1.reindex(np.arange(365))
我的所有值都被清除了。这个例子并不特别有用,但每次我使用重新索引命令时,无论上下文如何,它都会发生。同样地,当我尝试连接两个数据框架时:
>>>big_frame=frame1.join(pd.DataFrame(np.arange(365)), lsuffix='_frame1')
在连接帧之前,被连接的帧中所有值(np.arange(365))都被替换为NaN。如果我必须猜测的话,我会说这是因为第二个帧在连接过程中被重新索引,而重新索引会擦除我的值。
这里到底发生了什么?
reindexing
并不是你想要的。你实际上想要使用set_index
。 - piRSquared