You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中为聚类将DataFrame字符串转为数字的方法

把CSV中ord_2列的字符串转成指定整数的方法

假设你已经用pandas读取了CSV数据,存在变量df里(比如import pandas as pd; df = pd.read_csv('你的文件.csv')),下面给你几种简单易懂的实现方式:

方法1:直接替换单个指定值

如果你只需要把"Cold"换成1,其他字符串暂时不动,直接用replace方法:

# 将ord_2列里的"Cold"替换成整数1
df['ord_2'] = df['ord_2'].replace('Cold', 1)
# 要是需要确保列类型是整数,再加一步
df['ord_2'] = df['ord_2'].astype(int)

方法2:用映射字典处理多个类别

如果后续还要把其他字符串(比如"Warm"、"Hot")也转成对应整数,先做个映射字典,再批量转换:

# 定义每个字符串对应的整数
category_map = {
    'Cold': 1,
    'Warm': 2,
    'Hot': 3,
    # 可以继续加其他需要转换的类别
}
# 按映射替换列中的值
df['ord_2'] = df['ord_2'].map(category_map)

注:如果列里有字典中没包含的字符串,转换后会变成NaN,记得提前处理或者补充字典。

方法3:自动给所有类别分配整数(适合不确定所有类别的情况)

如果不知道ord_2列有多少种不同的字符串,或者想让程序自动给每个唯一字符串分配一个整数,可以用sklearn的标签编码器:

# 先导入编码器
from sklearn.preprocessing import LabelEncoder

# 初始化编码器
le = LabelEncoder()
# 对ord_2列进行编码,每个唯一字符串会被转成0、1、2...这样的整数
df['ord_2'] = le.fit_transform(df['ord_2'])

注:这种方法的整数是按字符串出现顺序分配的,如果你必须让"Cold"对应1,可以先手动替换"Cold"为1,再用编码器处理其他值。

内容的提问来源于stack exchange,提问作者user17712216

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 20:25:12