首页 > 解决方案 > pandas - 显示列名 + 总和大于零的总和

问题描述

我读了我的数据框:

dataframe = pd.read_csv("testFile.txt", sep = "\t", index_col= 0)

我有一个这样的数据框:

cell 17472131 17472132 17472133 17472134 17472135 17472136
cell_0 1 0 1 0 1 0
cell_1 0 0 0 0 1 0
cell_2 0 1 1 1 0 0 
cell_3 1 0 0 0 1 0 

对于熊猫,我想获取所有列的总和大于 1 的列名和总和。所以我想:

17472131 2
17472133 2
17472135 3

我想出了如何得到每列的总和

dataframe.sum(axis=0)

但这也返回总和低于 2 的列。有没有办法只显示值高于 1 的列?

标签: python-3.xpandas

解决方案


一种非常简洁的方法是使用 lambda 函数loc

df.set_index('cell').sum().loc[lambda x: x>1]

输出:

17472131    2
17472133    2
17472135    3
dtype: int64

详细信息: df.sum 返回一个 pd.Series,我们可以使用它lambda x: x>1来生成布尔系列,它loc使用布尔索引来仅选择 pd.Series 的 True 部分。


推荐阅读