pandas 将类型对象列转换为浮点

ddhy6vgd  于 2022-11-27  发布在  其他
关注(0)|答案(1)|浏览(161)

我有一个表,其中有一个名为“price”的列。此列的类型为object。因此,它包含字符串形式的数字以及NaN或?字符。我想求出此列的平均值,但首先我必须删除NaN和?值,并将其转换为float
下面是一个例子:

import pandas as pd
import numpy as np
df = pd.read_csv('Automobile_data.csv', sep = ',')

df = df.dropna('price', inplace=True)
df['price'] = df['price'].astype('int')
df['price'].mean()

但是,这不起作用。错误显示:

ValueError: No axis named price for object type DataFrame

我怎样才能解决这个问题?

g52tjvyc

g52tjvyc1#

edit:在panda 1.3及更低版本中,你需要将subset=[col] Package 在一个列表/数组中。在panda 1.4及更高版本中,你可以将一列作为字符串传递。
你有几个问题:

  1. df.dropna()参数需要坐标轴,然后是子集。坐标轴是行/列,子集是要查看的行/列。因此,您希望它是(我认为)df.dropna(axis='rows',subset='price')
    1.使用inplace=True会使整行返回None,所以你设置了df = None,你不想这么做,如果你使用的是inplace=True,那么你不给它赋值,整行就是df.dropna(...,inplace=True)
    1.不要使用inplace=True,只做赋值。也就是说,你应该使用df=df.dropna(axis='rows',subset='price')

相关问题