Python Pandas读取CSV后将字符串(A/B)映射为整数(0/1)方法问询
解决pandas中字符串到整数的映射问题
嘿,作为Python和pandas的新手,这个字符串转整数的需求其实很好实现,给你几种简单好用的方法:
方法1:使用replace()函数
你可以创建一个映射字典,直接用replace()把目标列里的A和B替换成对应的整数:
import pandas as pd data = pd.read_csv('filelocation/Data.csv', header=None) # 定义映射关系 value_map = {'A': 0, 'B': 1} # 对指定列进行映射转换 last_col_mapped = data.iloc[0:208, 60].replace(value_map) print(last_col_mapped)
方法2:使用map()函数
map()专门用于这种元素级别的映射,用法更简洁:
import pandas as pd data = pd.read_csv('filelocation/Data.csv', header=None) last_col_mapped = data.iloc[0:208, 60].map({'A': 0, 'B': 1}) print(last_col_mapped)
方法3:利用分类类型(适合后续有分类操作的场景)
如果之后你还需要对这个列做分类相关的处理,可以把它转为category类型,再提取对应的编码:
import pandas as pd data = pd.read_csv('filelocation/Data.csv', header=None) # 将列转为分类类型,指定类别顺序(确保A对应0,B对应1) category_col = data.iloc[0:208, 60].astype('category').cat.set_categories(['A', 'B']) # 提取分类编码 last_col_mapped = category_col.cat.codes print(last_col_mapped)
这几种方法都能帮你得到想要的输出:
0 1 1 0 0
你可以根据自己的实际需求选择,比如只是临时转换的话,前两种方法足够简单;要是有后续分类操作,第三种会更灵活。
内容的提问来源于stack exchange,提问作者Justin
相关产品推荐
相关产品推荐

