如何在Python DataFrame中将多列的t/f值转换为数值型?
将DataFrame中多列t/f值转换为数值的方法
假设你的DataFrame数据如下:
import pandas as pd df = pd.DataFrame({ 'A': ['t', 't', 'f', 't'], 'B': ['f', 't', 'f', 't'] })
以下是几种实用的转换方式:
方法1:批量替换
用replace()指定替换规则,可快速转换所有列或指定列:
# 转换所有列 df = df.replace({'t': 1, 'f': 0}) # 仅转换指定列(如A、B列) df[['A', 'B']] = df[['A', 'B']].replace({'t': 1, 'f': 0})
方法2:逐列映射
通过map()结合转换字典实现,适合需要自定义单列规则的场景:
convert_rule = {'t': 1, 'f': 0} df['A'] = df['A'].map(convert_rule) df['B'] = df['B'].map(convert_rule)
方法3:布尔判断转整数
先判断值是否为t得到布尔结果,再转为整数(True对应1,False对应0),代码最简洁:
# 转换所有列 df = (df == 't').astype(int) # 仅转换指定列 df[['A', 'B']] = (df[['A', 'B']] == 't').astype(int)
内容的提问来源于stack exchange,提问作者Y G
相关产品推荐
相关产品推荐

