gpt4 book ai didi

python - 从两列计算和创建百分比列

转载 作者:太空狗 更新时间:2023-10-30 01:06:34 25 4
gpt4 key购买 nike

我有一个 df (Apple_farm),需要根据两列(Good_applesTotal_apples)中的值计算百分比),然后将结果值添加到 Apple_farm 中名为“Perc_Good”的新列中。

我试过:

Apple_farm['Perc_Good'] = (Apple_farm['Good_apples'] / Apple_farm['Total_apples']) *100

但是这会导致此错误:

TypeError: unsupported operand type(s) for /: 'str' and 'str'

打印 Apple_farm['Good_apples']Print Apple_farm['Total_apples']

生成一个包含数值的列表,但是除以它们似乎会导致它们被转换为字符串?

我也尝试过定义一个新函数:

def percentage(amount, total):
percent = amount/total*100
return percent

但不确定如何使用它。

任何帮助将不胜感激,因为我对 Python 和 pandas 还很陌生!

最佳答案

我认为您需要将 string 列转换为 floatint,因为它们的 type字符串(但看起来像数字):

Apple_farm['Good_apples'] = Apple_farm['Good_apples'].astype(float)
Apple_farm['Total_apples'] = Apple_farm['Total_apples'].astype(float)

Apple_farm['Good_apples'] = Apple_farm['Good_apples'].astype(int)
Apple_farm['Total_apples'] = Apple_farm['Total_apples'].astype(int)

示例:

import pandas as pd

Good_apples = ["10", "20", "3", "7", "9"]
Total_apples = ["20", "80", "30", "70", "90"]
d = {"Good_apples": Good_apples, "Total_apples": Total_apples}
Apple_farm = pd.DataFrame(d)
print Apple_farm
Good_apples Total_apples
0 10 20
1 20 80
2 3 30
3 7 70
4 9 90

print Apple_farm.dtypes
Good_apples object
Total_apples object
dtype: object

print Apple_farm.at[0,'Good_apples']
10

print type(Apple_farm.at[0,'Good_apples'])
<type 'str'>
Apple_farm['Good_apples'] = Apple_farm['Good_apples'].astype(int)
Apple_farm['Total_apples'] = Apple_farm['Total_apples'].astype(int)

print Apple_farm.dtypes
Good_apples int32
Total_apples int32
dtype: object

print Apple_farm.at[0,'Good_apples']
10

print type(Apple_farm.at[0,'Good_apples'])
<type 'numpy.int32'>
Apple_farm['Perc_Good'] = (Apple_farm['Good_apples'] / Apple_farm['Total_apples']) *100

print Apple_farm
Good_apples Total_apples Perc_Good
0 10 20 50.0
1 20 80 25.0
2 3 30 10.0
3 7 70 10.0
4 9 90 10.0

关于python - 从两列计算和创建百分比列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36332147/

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