python - 使用python计算每一行的数字

标签 python pandas python-2.7

我有一个 pandas 数据框:

a   b   c   d
./. 0/1 ./. 0/1
0/1 1/1 0/0 1/1
0/1 1/1 ./. 1/1

我想知道,如何获得每行中“0”和“1”的总数,如下所示:

a   b   c   d   C0  C1
./. 0/1 ./. 0/1 2   2
0/1 1/1 0/0 1/1 3   5
0/1 1/1 ./. 1/1 1   5

最佳答案

让我们.stack要 reshape 的数据框,然后使用 .str.extractall要将 regex 模式中的所有捕获组提取为列,最后使用 .notna + .sumlevel=0 上计算 01 的数量:

df[['c0', 'c1']] = df.stack().str.extractall(r'(0)|(1)').notna().sum(level=0)

     a    b    c    d  c0  c1
0  ./.  0/1  ./.  0/1   2   2
1  0/1  1/1  0/0  1/1   3   5
2  0/1  1/1  ./.  1/1   1   5

关于python - 使用python计算每一行的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65523912/

相关文章:

python - 用\t 解析 python 中的列表

python - 获取系列内的数组切片

python - 将新行附加到现有数据框

python - 为什么我的计算域在反面不起作用?

python - 如何使用 python 获取主题 dn

python - 热图上的特定异常值 - matplotlib

python - 将列作为副本添加到 Pandas DataFrame

python - 聚合方法和 lambda 函数

python-2.7 - 使用 Tor 运行茎给出 "Process terminated: Timed out"

oracle - 无法在 python "ImportError: DLL load failed: The specified procedure could not be found."中导入 cx_Oracle