我的数据中有一列包含这些值的列
2
2
是
2
是
在python pandas中,如何识别包含字母串的整行,然后删除或删除整行?
由于
答案 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