熊猫从数据框中仅选择数字或整数字段
问题内容:
我有这个熊猫数据框(df):
A B
0 1 green
1 2 red
2 s blue
3 3 yellow
4 b black
类型是对象。
我将选择其中A值为整数或数字的记录:
A B
0 1 green
1 2 red
3 3 yellow
谢谢
问题答案:
调用apply
数据框(请注意使用双方括号df[['A']]
而不是df['A']
)并调用string方法isdigit()
,然后设置paramaxis=1
以逐行应用lambda函数。这里发生的是该索引用于创建布尔掩码。
In [66]:
df[df[['A']].apply(lambda x: x[0].isdigit(), axis=1)]
Out[66]:
A B
Index
0 1 green
1 2 red
3 3 yellow
更新资料
如果您使用的是0.16.0或更高版本,则以下内容也将起作用:
In [6]:
df[df['A'].astype(str).str.isdigit()]
Out[6]:
A B
0 1 green
1 2 red
3 3 yellow
在这里,我们将Series转换为str
using
astype
,然后将其称为vectorizedstr.isdigit
另请注意,convert_objects
已弃用,应使用to_numeric
最新版本0.17.0
或更新的版本