将select_dtypes应用于数据框的选定列

时间:2018-06-22 08:43:18

标签: python pandas numpy dataframe

我有一些同时包含浮点数和字符串的列。我希望能够选择这些列并根据其数据类型应用不同的掩码。

我已经找到了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以外的dtype的列

最后,我想用dtype选择创建一个遮罩,例如

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

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

1 个答案:

答案 0 :(得分:1)

您可以定义一个将转换应用于数字的函数,然后根据转换是否成功进行过滤:

var to_rgb = function (_text, _r, _g, _b) {
    return "\x1b[38;2;" + _r + ";" + _g + ";" + _b + "m" + _text + "\x1b[0m";
};