pd.to_numeric在python

时间:2016-11-08 18:11:30

标签: python pandas numeric

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

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

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

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

Name: Period, dtype: float64

如果我再次检查:

df['Period'].dtype

它返回:

dtype('O')

显然转换实际上并不起作用。同样使用以下代码,它什么都没有删除。

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

你认为出了什么问题?

2 个答案:

答案 0 :(得分:3)

默认情况下,to_numeric等Pandas操作不会“就地”运行。我建议您将结果分配给数据框中的列。

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

dropna相同。

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

答案 1 :(得分:1)

可替换地:

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