Python TypeError:float()参数必须是字符串或数字,而不是';方法';更改数据帧的列类型时

Python TypeError:float()参数必须是字符串或数字,而不是';方法';更改数据帧的列类型时,python,pandas,Python,Pandas,我正在尝试将数据帧中的所有列更改为float,我的代码是- df = pd.read_csv('Consolidated_train_data.csv') df.drop(['investment_class', 'currency', 'fund_size','category', 'parent_company', 'fund_name', 'inception_date', 'fund_id'], axis=1, inplace=True) medianFiller = lambda x

我正在尝试将数据帧中的所有列更改为float,我的代码是-

df = pd.read_csv('Consolidated_train_data.csv')
df.drop(['investment_class', 'currency', 'fund_size','category', 'parent_company',  'fund_name', 'inception_date', 'fund_id'], axis=1, inplace=True)
medianFiller = lambda x: x.fillna(x.median)
df = df.apply(medianFiller, axis=1)    
for col in df.columns:
        df[col] = df[col].astype('float64')
但在执行此操作时,我得到了一个错误-

TypeError: float() argument must be a string or a number, not 'method'
或直接:

df = df.astype('float64')
参考文献

更新问题:


尝试使用

result\u type
选项打印
df[col]
是否厌倦了?我尝试了这两种方法,但仍然得到相同的错误。这个问题可能是因为其他原因。我已经用更多的细节更新了代码-我正在阅读csv,删除一些列(所有分类列),用中间值填充na值(我不明白为什么,但用中间值替换na值会将其数据类型从float更改为object,下一步我将尝试将其还原为float。知道为什么会发生这种情况吗?)然后将列数据类型更改为float。@BhabaniAcharya请参阅更新的答案,可能需要使用result_type选项来改进apply方法
df = df.astype('float64')