我有一个大的数据框架(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
进行比较,并对True
s求和,以计数匹配值:
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