我如何只过滤如下所示的pandas数据框中的一列(SIC)中的字符串值/整数/浮点值?

                         SIC
1                      246804
2                      135272
3                      898.01
4                     3453.33
5                       shine
6                        add
7                         522
8                         Nan
9                      string
10                      29.11
11                        20

最佳答案

您可以使用pd.to_numeric和 bool 索引的输出。

要仅获取字符串,请使用:

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

输出:
      SIC
5   shine
6     add
8     Nan
9  string

要仅获取数字,请使用:
df[pd.to_numeric(df.SIC, errors='coerce').notnull()]

输出:
        SIC
1    246804
2    135272
3    898.01
4   3453.33
7       522
10    29.11
11       20

10-08 18:51