pandas python中所有 Dataframe 的计数特定值

0tdrvxhp  于 2023-01-07  发布在  Python
关注(0)|答案(2)|浏览(134)

我有一个大型 Dataframe (235832行× 79列),其中包含基因型数据行平均值=变体列平均值=患者
我想搜索 Dataframe 中的许多值(所有值,而不是特定的列或行)
所以,
我想返回所有 Dataframe 中查找结果[-1,-1]或[0 -1]的数量,如何在python中执行此操作
Dataframe 示例

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

我想在 Dataframe 中使用count [-1,-1]或[0,-1],在我的示例中返回4

9jyewag0

9jyewag01#

好的。我想你只需要计算[-1,-1]和[0,-1]的出现次数。我不确定格式。但总的来说,
假设 Dataframe 的名称为df

df_melted = df.melt()

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

df['value'].value_counts()

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

xtfmy6hx

xtfmy6hx2#

DataFrame.applymap将值转换为元组,按DataFrame.isin进行比较,并对True求和,以计算匹配值:

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

相关问题