计算python中所有数据帧的特定值



我有一个大的数据框架(235832行× 79列),包含基因型数据行平均数=变异列平均数=患者

我想在一个数据框中搜索多个值(所有,而不是特定的列或行)

我想返回在所有数据帧中找到[-1,-1]或[0 -1]的次数,我如何在python中做到这一点

数据框架示例

0 1 2 3 ... 78
0 [-1, -1] [0, 0] [0, 0] ... [0 -1]
1 [0 0] [0,0] [-1 -1] ... [0 -1]
and so on until 235832 

我想在数据帧中计数[-1,-1]或[0,-1]在我的例子中它返回4

OK。我想你只需要数一下[-1,-1]和[0,-1]的出现次数。我不确定格式。但一般来说,

假设你的数据框架的名字是df

df_melted = df.melt()

运行上面的单元格将在一列中获得原始数据框的所有值,然后,您可以运行

df['value'].value_counts()

这将返回所有值的计数,包括您正在查找的值。

通过DataFrame.applymap将值转换为元组,通过DataFrame.isin进行比较,并对Trues求和,以计数匹配值:

a = np.array([0,-1])
b = np.array([-1,-1])
c = np.array([1,-1])
df = pd.DataFrame({'a':[a,b,c],'b':[a,b,a],'c':[c,a,c]})
print (df)
a         b        c
0   [0, -1]   [0, -1]  [1, -1]
1  [-1, -1]  [-1, -1]  [0, -1]
2   [1, -1]   [0, -1]  [1, -1]

out = df.applymap(tuple).isin([tuple( [0,-1] ), tuple( [-1,-1] )] ).sum().sum()
print (out)
6

最新更新