过滤混合类型和对象的列

2024-05-14 06:30:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据框:

NPI.         hcps_code 
1003000126     92300
1003000126     G0101
1003000126.    H0002

它还有27个其他特性和大约900万行,在“hcps\u code”列中有混合数据类型,其中一些是int,一些是string,或者它们的组合。你知道吗

我需要根据匹配的数据帧过滤数据帧:

A)安装在92920到93799范围内

B)匹配代码“H0002”或“G0101”

到目前为止,我已经尝试过:

Surg_mammo_DA = super_clean_df.query('hcpcs_code == G0101')

但是得到错误:

UndefinedVariableError: name 'G0101' is not defined

接下来我尝试:

Surg_mammo_DA = super_clean_df.filter(like='H0002', axis=0)

这将返回一个空的数据帧,因为列的数据类型是object,所以它无法识别它。你知道吗

最后我试着:

Surg_mammo_DA = super_clean_df.loc[(super_clean_df['hcpcs_code'] == 'H0002') &
                                  (super_clean_df['hcpcs_code'] == 'G0101')]

由于对象冲突,这也会返回一个空的数据帧。你知道吗

因此,我尝试更改列的数据类型:

super_clean_df.hcpcs_code = super_clean_df.hcpcs_code.astype(str)

但是,它保持不变,很可能是因为特性中存在int和string/int组合的值:

hcpcs_code                           object

有人知道如何基于一列的多个条件过滤数据集,并在列中寻址不同的数据类型吗?你知道吗


Tags: 数据cleandfcode特性daint数据类型
1条回答
网友
1楼 · 发布于 2024-05-14 06:30:23

写两个条件来处理数据类型和过滤器

cond1 = pd.to_numeric(df['hcps_code'], errors = 'coerce').between(92920, 93799)
cond2 = df['hcps_code'].isin(['H0002', 'G0101'])
df[(cond1) | (cond2)]



NPI.         hcps_code 

1003000126     G0101
1003000126.    H0002

相关问题 更多 >