如何删除pandas中某个对象的行,python?

时间:2017-12-19 23:19:02

标签: python pandas jupyter-notebook

我的数据中有一列包含这些值的列

2

2

2

在python pandas中,如何识别包含字母串的整行,然后删除或删除整行?

由于

2 个答案:

答案 0 :(得分:1)

IIUC:

df = df[~pd.to_numeric(df['col'], errors='coerce').isna()]

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

答案 1 :(得分:0)

这是解决这个问题的方法。我已经包含了构建DataFrame的代码, 找到字符串值然后删除它们。 df.drop返回修改后的副本 除非你指定inplace = True,否则你可以指定df df = df.drop...的原始名称,或者使用inplace参数。

import pandas as pd
import numpy as np
# build the df
df = pd.DataFrame({'col_name' : [2, 2, 'yes', 2, 'yes']})
print(df)

  col_name
0        2
1        2
2      yes
3        2
4      yes

# ask what are the types in column
df.col_name.apply(type)

0    <class 'int'>
1    <class 'int'>
2    <class 'str'>
3    <class 'int'>
4    <class 'str'>
Name: col_name, dtype: object

# you can see that the strings are in row 2 and 4
# and drop them like this
df.drop([2, 4], axis='rows')

  col_name
0        2
1        2
3        2