我有一個有兩個指標變量列的數據框。我想創建一個第三列,它是兩個現有列的邏輯OR
。我能夠,像這樣:熊貓中2個指標列的邏輯或
df = DataFrame ({"a" : [1,0,0] , "b" : [0,0,1] })
df["c"] = (df["a"] | df["b"]).apply(lambda x : 1 if x else 0)
通過(df["a"] | df["b"])
生產的系列bool
類型。這令我感到驚訝,因爲|
是一個按位運算符,所以我預計該系列的類型爲int
。因此,我必須執行apply(lambda ...)
才能獲得所需的int
列。
我是否正確地做了這件事,還是有一個更簡潔/大熊貓首選/ pythonic的方式?
什麼版本numpy的,熊貓是你使用,因爲我無法重現你的布爾DF,它只是正常工作對我來說,我'運行numpy 1.9.1和熊貓0.16.1,調用'astype(int)'會解決你的問題,但我不能重現你的錯誤 – EdChum
我很高興你問我的版本,它看起來像我的熊貓只是0.15.2。 'astype(int)'解決方案工作正常,但無論如何我現在都會升級。 –