gpt4 book ai didi

python - 为数据框的选定列应用 select_dtypes

转载 作者:太空宇宙 更新时间:2023-11-04 04:39:28 29 4
gpt4 key购买 nike

我有几列既有 float 又有字符串。我希望能够选择这些列并根据它们的数据类型应用不同的掩码。

我找到了 select_dtypes() 方法,但它运行在整个数据帧上,我需要的是能够进行列选择。例如:

 df['A'].select_dtypes(exclude=[np.number]) 

现在,当我尝试这样做时,我得到了

AttributeError: 'Series' object has no attribute 'select_dtypes'

为了提供更多细节,假设我有这样的数据框:

df = pd.DataFrame([
[-1, 3, 0],
[5, 2, 1],
[-6, 3, 2],
[7, '<blank>', 3 ],
['<blank>', 2, 4],
['<blank>', '<blank>', '<blank>']], columns='A B C'.split())

当我运行时

df.select_dtypes(exclude=[np.number]) 

它没有给我一个错误,但也没有任何反应,因为它没有找到任何只包含除 np.number 之外的一个数据类型的列。

最后我想创建一个带有数据类型选择的掩码,例如

mask=  df['A'].select_dtypes(exclude=[np.number]) 

注意:我需要不更改此字符串,因为在进一步的步骤中,我会将此数据框呈现为 html 表,因此这些 < blank >字符串会给我空格。

最佳答案

可以定义一个函数对numeric进行转换,然后根据是否转换成功进行过滤:

def filter_type(s, num=True):
s_new = pd.to_numeric(s, errors='coerce')
if num:
return s[s_new.notnull()]
else:
return s[s_new.isnull()]

res = filter_type(df['A'], num=False)

print(res)

4 <blank>
5 <blank>
Name: A, dtype: object

关于python - 为数据框的选定列应用 select_dtypes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50984032/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com