我有dataframe
一个命名列Valoración
,其中包含三种类型的变量bien
,mal
或regular
。我想将 and 值转换为 and mal
,regular
因此no_bien
它将mal
andregular
视为单个值。
我做了以下,但它不起作用,
new_df.at['Valoracion']['mal'] = 'no_bien'
new_df.at['Valoracion']['regular'] = 'no_bien'
new_df = new_df.dropna()
new_df['Valoracion'].value_counts().plot(kind = 'bar')
我该怎么做?
谢谢
一个不起眼的解决方案可能是使用lambda。这样它返回
bien
yes评级是bien
,并且no_bien
一路上falso
。我们可以创建一个新列来检查结果是否正确。
输出将是这样的:
ps:只要你有3个不同的值,这个解决方案就可以为你工作,就像你的情况一样好,坏,常规
编辑:您可以通过映射或在列的值与应返回与其关联的值之间建立对应关系来替换值。. 在您的情况下,我们这样做:
“好”对应“好”
“坏”对应于“不好”
“常规”对应于“不好”
我们运行该列的映射。由于我们要修改列,因此我们将结果设为同一列。
我认为我想到的最简单的方法是使用“.loc”,留下这个简单的行:
对于“评分”列中除好以外的所有内容,我们分配“not_good”
在他的回答中武装 df 作为卢卡斯
结果如下:
为此,您可以使用pandas.DataFrame.loc,识别元素,然后在这种情况下用您需要的值替换它no_okay,最后保存文件。通过以下方式:
我希望它对你有帮助。干杯;)