我得到这个字典作为输入,我想确保所有数字的列都是浮点/整数类型。我用的是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