python - 在数据框的底部创建行,计算出现的次数

标签 python python-3.x pandas dataframe

我想在数据框的底部创建一行,计算给定数字(在本例中为 0)出现在每一列中的次数

df = pd.DataFrame({'Bread':[1,"Nan",3.3, 0],
           'Butter': [2, 3, "Nan", 1],
           'Jam': [0, 0, 0.3, 0.7]})


print (df)
Bread Butter  Jam
0     1      2  0.0
1   Nan      3  0.0
2   3.3    Nan  0.3
3     0      1  0.7

我的预期结果是(附加行“Occ”)

print (df)
    Bread Butter  Jam
    0     1      2  0.0
    1   Nan      3  0.0
    2   3.3    Nan  0.3
    3     0      1  0.7
   Occ   1      0    2

最佳答案

比较 DataFrame.eq并通过 sum 计算 True 值并通过 setting with enlargement 创建新行:

df.loc['Occ'] = df.eq(0).sum()

print (df)

    Bread Butter  Jam
0       1      2  0.0
1     Nan      3  0.0
2     3.3    Nan  0.3
3       0      1  0.7
Occ     1      0  2.0

详细信息:

print (df.eq(0))
   Bread  Butter    Jam
0  False   False   True
1  False   False   True
2  False   False  False
3   True   False  False

print (df.eq(0).sum())
Bread     1
Butter    0
Jam       2
dtype: int64

关于python - 在数据框的底部创建行,计算出现的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56989283/

相关文章:

python - 加速从 Golang 的 exec packaqe 访问 python 程序

python - 如果您的库与错误的 Python 版本一起使用,应该引发什么适当的内置异常?

python - 在 Python 中维护网页的更新文件缓存?

pandas 转 json 带 key

python - 仍然没有适用于 Python 3(或 3.3)的 wxPython?

python - 如果条件为真,则使用不同标记的线图 python 3

python - 为什么 sympy.simplify 会改变随机状态

python - celery:守护进程不允许有子进程(使用并发.futures)

pandas - 围绕标记坐标创建形状多边形

python - Pandas 使用列表向列添加二级索引