【问题标题】:Python: Change values in pd.DataFramePython:更改 pd.DataFrame 中的值
【发布时间】:2021-01-20 01:21:27
【问题描述】:

我有一个 pandas 数据框,其中一列包含我想更改为数字的分类数据

le=LabelEncoder()
for col in p3data.columns.values:
    if p3data[col].dtypes=='object':
        p3data[col]=le.fit_transform(p3data[col])

当我在我的 pandas 数据框中的一列上使用此代码时,它会更改值

非常低 = 4

低 = 1

中等 = 2

高 = 0

非常高 = 3

但是这不是按顺序排列的,我如何手动更改它们以使其按顺序排列,即

非常低 = 0

低 = 1

中等 = 2

高 = 3

非常高 = 4

【问题讨论】:

  • 也许看到this

标签: python pandas


【解决方案1】:

您可以将首选映射定义为字典并将其传递给 pd.rename: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.replace.html

之后你仍然可以将列的类型转换为int:p3data[col].astype(int)

【讨论】:

    【解决方案2】:

    试试.replace:

    values = [
        "Very Low",
        "Low",
        "Medium",
        "High",
        "Very High"
    ]
    replace_map = {v: k for k, v in enumerate(values)} 
    
    for col in p3data.columns:
        if p3data[col].dtypes == 'object':
            p3data[col] = p3data[col].replace(replace_map)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-21
      • 2016-12-15
      • 1970-01-01
      • 2023-03-27
      • 2015-02-08
      • 2021-06-15
      • 2016-07-17
      相关资源
      最近更新 更多