选择pandas DataFrame中的列

时间:2014-07-09 09:58:53

标签: python pandas

我有一个包含数百列抗生素名称的熊猫数据框。每种特定的抗生素在数据框中编码为以E,T或P结尾,以表示经验,治疗或预防方案。

列列表的示例摘录是:

  

['MeropenemP','MeropenemE','MeropenemT',DoripenemP','DoripenemE',   'DoripenemT',ImipenemP','ImipenemE','ImipenemT','BiapenemP',   'BiapenemE','BiapenemT','PanipenemP','PanipenemE',   'PanipenemT','PipTazP','PipTazE','PipTazT','PiperacillinP',   'PiperacillinE','PiperacillinT']

这里有一小部分数据:

Sample antibiotic data

对于我来说,将任何类型的列分离为具有正则表达式的单独数据帧是很简单的,例如选择我使用的所有经验规定的抗生素列:

E_cols = master.filter(axis=1, regex=('[a-z]+E$'))

每个列都有一个二进制值(0,1),用于处理每个人(行)的每种抗生素方案类型。

问题: 我如何为每种类型的方案类型总结所有列(1)的,并为数据帧中的每个结果生成新列,例如total_emperical,total_prophylactic,total_treatment。

我想添加到现有数据框的原因是我希望过滤每种方案类型的其他值。

1 个答案:

答案 0 :(得分:1)

生成与reg exp匹配的列表后,您可以像这样创建新的总列:

df['total_emperical'] = df[E_cols].sum(axis=1)

并重复其他总计。

axis=1传递给sum将按行排序