pandas 数据框将 INT64 列转换为布尔值

2022-01-19 00:00:00 python numpy pandas boolean

问题描述

数据框 df 中的某些列 df.column 存储为数据类型 int64.

Some column in dataframe df, df.column, is stored as datatype int64.

这些值都是 1 或 0.

The values are all 1s or 0s.

有没有办法用布尔值替换这些值?

Is there a way to replace these values with boolean values?


解决方案

df['column_name'] = df['column_name'].astype('bool')

例如:

import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.random_integers(0,1,size=5), 
                  columns=['foo'])
print(df)
#    foo
# 0    0
# 1    1
# 2    0
# 3    1
# 4    1

df['foo'] = df['foo'].astype('bool')
print(df)

产量

     foo
0  False
1   True
2  False
3   True
4   True

<小时>

给定一个 column_names 列表,您可以使用以下方法将多个列转换为 bool dtype:


Given a list of column_names, you could convert multiple columns to bool dtype using:

df[column_names] = df[column_names].astype(bool)

如果您没有列名列表,但希望转换所有数字列,那么您可以使用

If you don't have a list of column names, but wish to convert, say, all numeric columns, then you could use

column_names = df.select_dtypes(include=[np.number]).columns
df[column_names] = df[column_names].astype(bool)

相关文章