Python 3.x 熊猫-显示列名+;和大于零的和

Python 3.x 熊猫-显示列名+;和大于零的和,python-3.x,pandas,Python 3.x,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

我通过以下方式读取我的数据帧:

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 
使用pandas,我想得到所有列的名称,其中列的和大于1,并且总和大于1。 因此,我想:

17472131 2
17472133 2
17472135 3
我想出了如何用

dataframe.sum(axis=0)

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

一个非常简洁的方法是在
loc
中使用lambda函数:

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

17472131    2
17472133    2
17472135    3
dtype: int64

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

这就像一个魅力!!谢谢您是否知道将这些结果写入文件的简单方法?或者:
df.loc[:,df.columns.str.isnumeric()].sum().loc[lambda x:x>1]
使用
到csv
像这样:
df\u out.to\u csv('out.csv')
像@ansev或者您可以使用
df.选择数据类型(include='number').sum().loc[lambda x:x>1]