Pandas错误地将字符串转换为浮点数

时间:2017-06-26 23:17:06

标签: python csv pandas dataframe type-conversion

我使用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?现在我觉得这是解决这个问题的唯一方法。提前谢谢!

1 个答案:

答案 0 :(得分:0)

我认为这里有两个问题:

  1. 要打印每列的类型,只需使用ftypes或dtypes方法:

    即。 unfiltered_y_df.ftypes

  2. 你说' addr_state'是一个不是浮动的对象。那就是问题所在,StandardScaler()只适用于花车,所以它试图强迫你的状态' OH'浮动而不能,因此错误