过滤列中的字符串/浮点数/整数值(Pandas)

时间:2017-07-26 22:05:10

标签: python pandas dataframe filter integer

如何在pandas数据框中的一列中仅过滤字符串值/整数/浮点值,如下所示?

                         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    

2 个答案:

答案 0 :(得分:9)

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

要仅使用字符串:

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

答案 1 :(得分:0)

您可以使用apply()方法和isinstance()功能。可以用strint等替换float

df = pd.DataFrame([1,2,4.5,np.NAN,'asdf',5,'string'],columns=['SIC'])
print(df)
      SIC
0       1
1       2
2     4.5
3     NaN
4    asdf
5       5
6  string

print(df[df['SIC'].apply(lambda x: isinstance(x,str))])
      SIC
4    asdf
6  string