Создайте строку в нижней части фрейма данных, которая подсчитывает количество вхождений - PullRequest
1 голос
/ 11 июля 2019

Я хотел бы создать строку в нижней части кадра данных, которая подсчитывает количество вхождений данного числа (в данном случае 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

Ответы [ 2 ]

2 голосов
/ 11 июля 2019

Сравните на DataFrame.eq и посчитайте True значения на sum и создайте новую строку на 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
1 голос
/ 11 июля 2019

Вы можете использовать DataFrame.eq, чтобы проверить, какие значения равны 0 и взять sum, rename результирующий ряд и append как новая строка:

df = df.append(df.eq(0).sum(0).rename('Occ'))

     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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...