小能豆

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

python

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

值全部为 1 或 0。

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


阅读 277

收藏
2024-05-18

共1个答案

小能豆

可以使用 pandas 中的 astype 方法将 DataFrame 的某一列从 int64 类型转换为布尔类型。具体方法如下:

import pandas as pd

# 假设你的 DataFrame 是这样的
data = {
    'column': [1, 0, 1, 1, 0, 0],
    'other_column': [10, 20, 30, 40, 50, 60]
}
df = pd.DataFrame(data)

# 将 'column' 列转换为布尔类型
df['column'] = df['column'].astype(bool)

print(df)
print(df.dtypes)

解释

  1. 创建一个示例 DataFrame。
  2. 使用 astype(bool) 方法将 column 列的数据类型从 int64 转换为布尔类型。
  3. 打印 DataFrame 和列的数据类型以验证转换结果。

输出

   column  other_column
0    True            10
1   False            20
2    True            30
3    True            40
4   False            50
5   False            60

column           bool
other_column    int64
dtype: object

可以看到,column 列中的值已经成功地从 10 转换为 TrueFalse,数据类型也变成了 bool。这样可以更符合语义,并且在某些情况下可能会使代码更具可读性。

2024-05-18