python - 如何使用 Nan 数据将 String 转换为 Int

标签 python pandas

我想将字符串数据转换为 int 以删除小数点作为整数。 它在数据框中有浮点格式数据。

如果该列没有 nan 数据,它会起作用。 但是,如果 nan 数据类似于以下代码,则它不起作用。

df = pd.Dataframe([[1, '1.0'], [2, ''], [3, '2.8']],
                  columns=['id', 'number'])
df.loc[:, 'number'] = df['number'].astype(float).astype(int)

我该怎么做?

最佳答案

第一次使用to_numeric用于将非数字转换为 NaN

如果可以使用 pandas 0.24+,请使用 Nullable integer data type :

#get values before `.`
s = df['number'].str.split('\.').str[0]
df['number'] = pd.to_numeric(s, errors='coerce').astype('Int64')

或者使用np.floor:

df['number'] = pd.to_numeric(df['number'], errors='coerce').apply(np.floor).astype('Int64')

或者:

df['number'] = np.floor(pd.to_numeric(df['number'], errors='coerce'))
df['number'] = df['number'].astype('Int64')

关于python - 如何使用 Nan 数据将 String 转换为 Int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57159950/

相关文章:

python - 如何在 OpenCV Haar 分类器中显示最大的矩形

python - SQLAlchemy 列到行的转换,反之亦然——这可能吗?

python - 检查/验证 Django 模板中小数点后是否有实数,如果为零,则四舍五入

python - 在 Pandas 中将外部 json 与嵌套的 json 结合起来并创建新的数据框

python - 将 Python 数据框列转换为日期格式

python - 从金字塔导入 auto_arima 时出错

python - shapiro 和 normaltest 在 python 中可以互换使用吗?

python - 给定外部订单,按日期时间月份的 Pandas 订单行

python - Pandas :AttributeError: 'DataFrame' 对象没有属性 'agg'

python - 获取前一周的值 Python 数据框