过滤熊猫数据框列中的字符串/浮点数/整数值

Posted

技术标签:

【中文标题】过滤熊猫数据框列中的字符串/浮点数/整数值【英文标题】:Filtering string/float/integer values in pandas dataframe columns 【发布时间】:2018-01-02 10:34:34 【问题描述】:

如何在如下所示的 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    

【问题讨论】:

【参考方案1】:

您可以使用来自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

【讨论】:

【参考方案2】:

您可以将apply() 方法与isinstance() 函数一起使用。可以将str替换为intfloat等:

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

【讨论】:

以上是关于过滤熊猫数据框列中的字符串/浮点数/整数值的主要内容,如果未能解决你的问题,请参考以下文章

带有前缀的Python熊猫数据框字符串转换为浮点数

将 pandas 数据框列标签从浮点数转换为整数

在 C# 中针对浮点数验证整数值

将浮点数的数据框转换为熊猫中的整数?

如何用 NA 替换列中的字符串值并将列转换为浮点数?

将混合类型 DF 列中的浮点数转换为字符串使用科学记数法