我有一个数据类型为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"
whlutmcx1#
pd.to_numeric()函数似乎未成功将字符串值转换为整数。这可能是因为字符串值包含非数字字符,如空格或非数字符号。要使用Pandas将字符串列转换为整数,可以使用astype()方法。如果需要处理缺失值或无效值,可以使用fillna()方法将其替换为默认值:
pd.to_numeric()
astype()
fillna()
df['column'] = df['column'].fillna(0).astype(int)
这将用0替换任何缺失或无效的值,然后尝试将字符串转换为整数。如果要保留列中缺少的值,可以使用带有errors='coerce'参数的pd.to_numeric()将非数字值转换为NaN,然后使用fillna()将NaN值替换为默认值:
errors='coerce'
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)
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.
bxgwgixi3#
使用df ['列'].文件名(0).类型(整数)
3条答案
按热度按时间whlutmcx1#
pd.to_numeric()
函数似乎未成功将字符串值转换为整数。这可能是因为字符串值包含非数字字符,如空格或非数字符号。要使用Pandas将字符串列转换为整数,可以使用
astype()
方法。如果需要处理缺失值或无效值,可以使用fillna()
方法将其替换为默认值:这将用0替换任何缺失或无效的值,然后尝试将字符串转换为整数。
如果要保留列中缺少的值,可以使用带有
errors='coerce'
参数的pd.to_numeric()
将非数字值转换为NaN,然后使用fillna()
将NaN值替换为默认值:pkln4tw62#
这样行吗?
bxgwgixi3#
使用df ['列'].文件名(0).类型(整数)