我有一個填充了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