我有一个带有布尔值的pandas数据帧,即
col1 col2
1 True False
2 False True
3 True True
Run Code Online (Sandbox Code Playgroud)
当我使用pandas的DataFrame.to_csv方法时,结果数据框看起来像
,col1,col2
1,True,False
2,False,True
3,True,True
Run Code Online (Sandbox Code Playgroud)
有没有办法将布尔变量写为1和0(更节省空间),即
,col1,col2
1,1,0
2,0,1
3,1,1
Run Code Online (Sandbox Code Playgroud)
无需先抛出整个数据帧?
您只需将dtypedf的int转换True为将转换为1和False即可0:
In [16]:
df.astype(int)
Out[16]:
col1 col2
1 1 0
2 0 1
3 1 1
Run Code Online (Sandbox Code Playgroud)
实际上它非常简单,只需将df乘以1即可.
import pandas as pd
import io
data = """
col1 col2
1 True False
2 False True
3 True True
"""
df = pd.read_csv(io.StringIO(data), delimiter='\s+')
print(df*1)
Run Code Online (Sandbox Code Playgroud)
这会将其更改为:
col1 col2
1 1 0
2 0 1
3 1 1
Run Code Online (Sandbox Code Playgroud)
从那里你可以通过做df = df*1或从代码中重新分配df df2 = df*1.第一个将防止重复复制.
| 归档时间: |
|
| 查看次数: |
1979 次 |
| 最近记录: |