pd.to_numeric 在 python 中不工作

pd.to_numeric is not working in python

我正在使用 Jupyter 笔记本。默认 python 内核。 'numpy' 和 'pandas' 已导入。

此列名为 'Period'。该值包含数字和文本,如 "Period"。数据类型为 'object'。我想删除列 'Period' 的值不是数字的行。 我试图做的是首先将列从对象转换为数字。

pd.to_numeric(df['Period'],errors='coerce')

它返回了一个数字和 NaN 的列表。最后一行是:

Name: Period, dtype: float64

如果我再次检查:

df['Period'].dtype

它returns:

dtype('O')

显然转换并没有真正起作用。同样使用以下代码,它什么也没掉。

df.dropna(subset=['Period'])

你认为哪里出了问题?

默认情况下,

Pandas 操作如 to_numeric 不会操作 "in-place"。我建议您将结果分配给数据框中的列。

df['Period_numbers'] = pd.to_numeric(df['Period'], errors='coerce')

dropna也一样。

在大多数情况下,您可以将 inplace=True 传递给方法或函数。但我确实建议改为分配结果。

或者:

df[df['Period'].str.isnumeric()]