IBM Data Science: аргумент float () должен быть строкой или числом, а не методом - PullRequest
0 голосов
/ 03 августа 2020

Я пытаюсь запустить следующий код:

#calculate the mean vaule for "stroke" column
avg_stroke=df['stroke'].astype('float').mean(axis=0)
print("Average of stroke:", avg_stroke)

Однако я продолжаю получать следующую ошибку:

float() argument must be a string or a number, not 'method'` on this code.

Я использовал одну и ту же структуру кода в разных частях моего скрипта и добиться хорошего чистого среднего:

#Write your code below and press Shift+Enter to execute 
avg_norm_loss = df["normalized-losses"].astype("float").mean(axis=0)
print("Average of normalized-losses:", avg_norm_loss)

Я уже исключил любые предложения / ответы из этих ответов SE:

1 Ответ

0 голосов
/ 03 августа 2020

Вы знаете, что в этом столбце есть строка со значением "?" существуют? Вы должны сначала удалить это. В остальном код у меня работает.

import pandas as pd
url = r"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/auto.csv"
col_names = ["symboling","normalized-losses","make","fuel-type","aspiration", "num-of-doors","body-style", "drive-wheels","engine-location","wheel-base", "length","width","height","curb-weight","engine-type", "num-of-cylinders", "engine-size","fuel-system","bore","stroke","compression-ratio","horsepower", "peak-rpm","city-mpg","highway-mpg","price"]
df = pd.read_csv(url, names=col_names)

df = df[df['stroke']!="?"]

avg_stroke = df['stroke'].astype('float').mean(axis=0)
print("Average of stroke:", avg_stroke)
#out: Average of stroke: 3.255422885572139
...