Pandas字符串,没有到int的转换

vuktfyat  于 2023-03-11  发布在  其他
关注(0)|答案(3)|浏览(181)

我有一个数据类型为string的列。我想用Pandas把它转换成int。
Dataframe 列具有如下值:

1
2
None

我用Pandas把它转换成整数。

df['column'] = pd.to_numeric(df[column],errors='coerce').fillna(0)
print(df.dtypes)
print(df)

它打印:
对象和值,例如:

"1"
"2"
"None"
whlutmcx

whlutmcx1#

pd.to_numeric()函数似乎未成功将字符串值转换为整数。这可能是因为字符串值包含非数字字符,如空格或非数字符号。
要使用Pandas将字符串列转换为整数,可以使用astype()方法。如果需要处理缺失值或无效值,可以使用fillna()方法将其替换为默认值:

df['column'] = df['column'].fillna(0).astype(int)

这将用0替换任何缺失或无效的值,然后尝试将字符串转换为整数。
如果要保留列中缺少的值,可以使用带有errors='coerce'参数的pd.to_numeric()将非数字值转换为NaN,然后使用fillna()将NaN值替换为默认值:

import pandas as pd

df = pd.DataFrame({
    'column': ['1', '2', 'None', '3', '4', '5']
})

# Convert the string column to integers
df['column'] = pd.to_numeric(df['column'], errors='coerce').fillna(0).astype(int)

print(df)
pkln4tw6

pkln4tw62#

这样行吗?

data = pd.DataFrame({'column':['1','2','3',None]})
data["new_column"]=data["column"].map(lambda x : int(x) if x!= None else np.nan) #np.nan or None or 0 or whatever you want.
bxgwgixi

bxgwgixi3#

使用df ['列'].文件名(0).类型(整数)

相关问题