熊猫从数据框中仅选择数字或整数字段


问题内容

我有这个熊猫数据框(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转换为strusing
astype,然后将其称为vectorizedstr.isdigit

另请注意,convert_objects已弃用,应使用to_numeric最新版本0.17.0或更新的版本