过滤熊猫数据框列中的字符串/浮点数/整数值
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
替换为int
、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
【讨论】:
以上是关于过滤熊猫数据框列中的字符串/浮点数/整数值的主要内容,如果未能解决你的问题,请参考以下文章