我有一个df(Apple_farm),需要根据在两个列(Good_apples和Total_apples)中找到的值计算百分比,然后将结果值添加到Apple_farm中名为“ Perc_Good”的新列中。
我试过了:
Apple_farm['Perc_Good'] = (Apple_farm['Good_apples'] / Apple_farm['Total_apples']) *100
Run Code Online (Sandbox Code Playgroud)
但是,这导致此错误:
TypeError:/:'str'和'str'不支持的操作数类型
在做
Print Apple_farm['Good_apples'] 和 Print Apple_farm['Total_apples']
产生一个带有数值的列表,但是将它们相除似乎会导致它们转换为字符串?
我也试图定义一个新函数:
def percentage(amount, total):
percent = amount/total*100
return percent
Run Code Online (Sandbox Code Playgroud)
但不确定如何使用。
任何帮助将不胜感激,因为我是Python和pandas的新手!
我已经使用熊猫导入了一个 csv 文件。
我的数据框有多个标题为“农场”、“苹果总数”和“好苹果”的列。
为“Total Apples”和“Good Apples”导入的数字数据包含表示千的逗号,例如 1,200 等。我想删除逗号,使数据看起来像 1200 等。
“Total Apples”和“Good Apples”列的变量类型作为对象出现。
我尝试使用df.str.replace,df.strip但没有成功。
还尝试将变量类型从对象更改为字符串,将对象更改为整数,但无法使其工作。
任何帮助将不胜感激。
****编辑****
来自使用 pd.read_csv 导入的 csv 文件的数据摘录:
Farm_Name Total Apples Good Apples
EM 18,327 14,176
EE 18,785 14,146
IW 635 486
L 33,929 24,586
NE 12,497 9,609
NW 30,756 23,765
SC 8,515 6,438
SE 22,896 17,914
SW 11,972 9,114
WM 27,251 20,931
Y 21,495 16,662
Run Code Online (Sandbox Code Playgroud)