繁体   English   中英

如何使用 pandas.dataframe.where() 更改值?

[英]How can I change a value using pandas.dataframe.where()?

我很难做到这一点。 在清理我的数据时,称为“马力”的列之一的 integer 可以在 48.0 到 288.0 之间。 数据中的一个数字已输入为 1100,我将假设人为错误,并希望将 1100 更改为 110。使用 pandas,我将如何使用 go 关于这个,我尝试了很多不同的代码。 这是我之前尝试运行的代码: df.where(df['horsepower']<288, '110')

Where 返回已编辑的列

Pandas 的 where 将 pandas 系列与替换件一起返回。 您需要将 df.where 的返回值分配给该列。 您还可以使用 inplace 参数将 output 自动分配回列。

df.horsepower = df.where(df.horsepower < 288, 110)
# equivalent to
df.where(df.horsepower < 288, 110, inplace=True)

请注意,您要确保将值替换为相同的数据类型。 因此,您应该使用 110,而不是使用“110”。

建议

上面的代码会将大于 288 的任何值替换为值 110。这可能不会达到您想要的效果。 如果您只是想替换一个特定的值,您应该使用 Quang Hoang 的建议

df['horsepower'] = df['horsepower'].replace(1100, 110)

如果您希望将所有大于 288 的值除以 10,则可以使用以下代码。

df = pd.DataFrame({
"horsepower": [120, 72, 16, 1100, 400, 128]
})

# changes 1100 to 110 and 400 to 40
df.horsepower[df.horsepower > 288] /= 10

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM