gpt4 book ai didi

python - 如何使用 bool 值重命名和替换列中的值?

转载 作者:行者123 更新时间:2023-12-01 19:59:27 24 4
gpt4 key购买 nike

我正在使用数据框,并且一些数据列缺少由列中的 '?' 表示的类别。我正在尝试使用 bool 值来重命名标记为 '?' 的缺失类别,并将其替换为标记为 workclass 的列中的 'Private'。数据读入为:

import numpy as np 
import pandas as pd
import matplotlib.pyplot as plt
from pandas.plotting import scatter_matrix
from sklearn.preprocessing import *
url2="https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data" #Reading in Data from a freely and easily available source on the internet
Adult = pd.read_csv(url2, header=None)
##Assigning column names to the dataframe
Adult.columns = ["age","workclass","fnlwgt","education","educationnum","maritalstatus","occupation",
"relationship","race","sex","capitalgain","capitalloss","hoursperweek","nativecountry",
"less50kmoreeq50kn"]

我尝试运行代码:

MissingValue = Adult.loc[:, "workclass"] == "?"
Adult.loc[MissingValue, "workclass"] = "Private"

Adult.loc[ Adult.loc[:, "workclass"] == "?", "workclass"] = "Private"

运行代码时,我没有收到任何错误,但是使用 (Adult.loc[:,'workclass'].value_counts()) 检查列值时 '?' 仍然存在。代码: Adult['workclass'] = Adult['workclass'].str.replace('?', 'Private') 适用于我想要完成的任务,但是我希望能够用 bool 值来做。关于为什么会发生这种情况有什么建议吗?

最佳答案

问题是您的值与 '?' 不完全匹配,但可能类似于 '? '

您可以看到这一点,因为:

 Adult.loc[Adult['workclass']=='?',:]

返回一个空数据框,而

 Adult.loc[Adult['workclass'].str.strip()=='?',:]

返回 1836 行

strip 删除前导和尾随空格,因此您不必测试 ' ?'​​, '? ''? '

所以当你像这样稍微改变你的代码时

MissingValue = Adult.loc[:, "workclass"].str.strip() == "?"
Adult.loc[MissingValue, "workclass"] = "Private"

您会看到“?”已从 value_counts()

中消失

关于python - 如何使用 bool 值重命名和替换列中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60943666/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com