Pandas to_numeric返回字符串整数的对象类型



我得到这个字典作为输入,我想确保所有数字的列都是浮点/整数类型。我用的是pd。这个dataFrame的to_numeric:

df = pd.DataFrame({"a": ["1.1", "2"], "b": ["2", "blue"], "c": ["1", "2"]})

那么我使用这个函数-

def convert_string_columns_to_numeric(df: pd.DataFrame):
for col in df.columns:
series_column = pd.Series(df[col])
df[col] = pd.to_numeric(series_column, errors='ignore')
return df

我得到这些dtypes:

["float","object", "object"]

为什么不是"c"int类型的?

int类型:

df = pd.DataFrame(data = {"a":["1","1.2"],"b":["2","bla"],"c":["2","4"]})
df = df.apply(pd.to_numeric, errors='ignore')
print(df.dtypes)

输出:

a    float64
b     object
c      int64
dtype: object

如果您希望列c的类型为int,则不应该使用引号。为什么不这样创建数据框架(注意a列的引号也被去掉了):

df = pd.DataFrame({"a":[1, 1.2],"b":["2","bla"], "c":[2, 4]})

现在df。Dtypes会给你:

a    float64
b     object
c      int64

相关内容

  • 没有找到相关文章

最新更新