我有一个填充了True和False值的数据框,并且我希望从True中获得一个数据框,并将True替换为1,并将False替换为np.NaN。我试过使用dataframe.replace,但它给了一个填充所有True的数据框。有没有办法做到这一点,而不使用循环和if?例如,这是我拥有的数据框,其中T表示True,F表示False(不是字符串'T'和'F';对不起,无法弄清楚如何在维基上格式化一个空间很大的表格):如何将布尔值的数据帧转换为1和np.NaN的数据帧?
2008-01-02 16时00分00秒TTF
2008-01-03 16时00分00秒TTT
2008-01-04 16时00分00秒TTF
2008-01-07 16: 00:00 TTT
2008-01-08 16:00:00 TTF
这就是我想改成它:
2008-01-02 16:00:00 1 1 np.NaN
2008-01-03 16:00:00 1 1 1
2008-01-04 16:00:00 1 1 np.NaN
2008-01-07 16:00:00 111
2008-01-08 16:00:00 1 1 np.NaN
这些都是我试图取代真假行,有一个数据帧充满了真实值:
df.replace(to_replace=True, value=1, inplace=True, method=None)
df.replace(to_replace=False, value=np.NAN, inplace=True, method=None)
当分开审讯,第一行本身并不改变任何东西;第二行将所有值转换为True。
这将打破,如果第一列由'datetime'实例组成。像'df.applymap(lambda x:d.get(x,x))'应该绕过这个。 [我有点讨厌自己,我找不到一个好的方法来做到这一点,但我的前两种方法与''T''和''F''一起工作,但失败了'真'和'假'。 ] – DSM
我赞赏我对使用异构数据的数据框的工作做出的反应。 – Zelazny7
谢谢!我对python有点新鲜,并且非常欣赏这些改进和指针。我会再次修改我的回复。 – Zelazny7