我有一个带有整数的熊猫数据框。
我想用True
替换 1,用数据框中的所有列替换 2False
,以便仅使用布尔值制作数据框。
我以为我会尝试使用类似df[Col] = df[Col].astype(bool)
的东西遍历所有列,但是当我在Col1
上尝试时,它只是用True
替换了Col1
中的每个值,当它应该True
、True
、False
、True
时。
感谢您的任何帮助!
import pandas as pd
data = {'Col1': [1,1,2,1],
'Col2': [2,2,1,1],
'Col3': [1,1,1,2],
'Col4': [2,1,2,2]
}
df = pd.DataFrame(data, columns = ['Col1', 'Col2', 'Col3', 'Col4'])
只需使用:
df == 1
输出:
Col1 Col2 Col3 Col4
0 True False True False
1 True False True True
2 False True True False
3 True True False False
import pandas as pd
data = {'Col1': [1,1,2,1],
'Col2': [2,2,1,1],
'Col3': [1,1,1,2],
'Col4': [2,1,2,2]
}
df = pd.DataFrame(data, columns = ['Col1', 'Col2', 'Col3', 'Col4'])
df = df.replace(1,True)
df = df.replace(2,False)
df
输出:
Col1 Col2 Col3 Col4
0 True False True False
1 True False True True
2 False True True False
3 True True False False
您可以使用df.replace
.
df.replace([1,2],[True,False])
你来了:
>>> df == 1
Col1 Col2 Col3 Col4
0 True False True False
1 True False True True
2 False True True False
3 True True False False
问题是,在整数的上下文中,.astype(bool)
将所有非零整数更改为 True,将所有零更改为 False。我将按如下方式使用map
:
df[Col] = df[Col].map({1:True, 2:False})