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()]
我正在使用 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()]