gpt4 book ai didi

python - 将超过 100% 的百分比视为两位数 %

转载 作者:太空宇宙 更新时间:2023-11-04 11:18:11 27 4
gpt4 key购买 nike

我有一个包含一些原始数据的 CSV。我有条件地删除行,但当百分比 > 100% 时遇到问题。该百分比似乎被视为两位数 %。

这是我转换此数据框的函数。目的是删除指定列中百分比 >= 50% & 百分比 < 0% & 百分比 == 0% 的所有行;然后按该列降序排序。我确信我可以组合所有放置转换,但我喜欢这个的可读性。

def modify_csv():
df = pd.read_csv("Initial.csv")

# Delete row if utb > 50%
df.drop(df[df["column 1"] >= "50%"].index, inplace = True)

# Delete row if utb == 0%
df.drop(df[df["column 1"] == "0%"].index, inplace = True)

# Delete row if utb == 0%
df.drop(df[df["column 1"] < "0%"].index, inplace = True)

# Sort by column 1
df.sort_values(by = "column 1", ascending = False, inplace = True)

df.to_csv("Final.csv", na_rep = 0, index = False)

这是我最近运行“第 1 列”的输出:

49%
48%
47%
45%
39%
36%
27%
19%
17%
111%
104%

一切正常,除了您可以看到 111% 和 104% 被视为等于 11% 和 10%,因为我们正在降序排序。任何见解将不胜感激!我在网上搜索但找不到任何类似的案例。感谢您的帮助!

最佳答案

排序顺序的原因不是它被视为两位数百分比,而是因为数据被视为字符串。字符串按字典顺序进行比较。

您需要设置 dtype argument当调用 read_csv 以确保您的数据被视为数字时。您可能还需要使用 converters 去除百分号。

关于python - 将超过 100% 的百分比视为两位数 %,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56553058/

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