我使用Excel中的csv文件来创建pandas数据框。最近,我遇到了几条关于数据框中每列的dtypes的ValueError消息。
这是最近提出的例外:
ValueError:无法将字符串转换为float:' OH'
跑熊猫之后'我的数据框上的dtypes方法,它表明这个特定的列addr_state
是一个对象,而不是一个浮点数。
我已粘贴下面的所有代码以澄清:
work_path = 'C:\\Users\\Projects\\loans.csv'
unfiltered_y_df = pd.read_csv(work_path, low_memory=False, encoding='latin-1')
print(unfiltered_y_df.dtypes)
filtered_y_df = unfiltered_y_df.loc[unfiltered_y_df['loan_status'].isin(['Fully Paid', 'Charged Off', 'Default'])]
X = StandardScaler().fit_transform(filtered_y_df[[column for column in filtered_y_df]])
Y = filtered_y_df['loan_status']
另外,是否可以明确写出每列的dtypes?现在我觉得这是解决这个问题的唯一方法。提前谢谢!
答案 0 :(得分:0)
我认为这里有两个问题:
要打印每列的类型,只需使用ftypes或dtypes方法:
即。 unfiltered_y_df.ftypes
你说' addr_state'是一个不是浮动的对象。那就是问题所在,StandardScaler()只适用于花车,所以它试图强迫你的状态' OH'浮动而不能,因此错误