Панды, считающие каждый столбец с его специфическими порогами - PullRequest
1 голос
/ 17 октября 2019

Если у меня есть следующий фрейм данных:

          A       B       C       D       E

1         1       2       0       1       0
2         0       0       0       1      -1
3         1       1       3      -5       2
4        -3       4       2       6       0
5         2       4       1       9      -1
T         1       2       2       4       1

Последняя строка - мои пороговые значения для каждого столбца. Я хочу посчитать значения каждого столбца, будь то понизить его пороговые значения или нет в питон-пандах.

Требуемый вывод:

         A       B       C       D       E
Count    2       2       3       3       4

Но мне нужно выяснить это с помощью общего решения, а не для этих конкретных столбцов. Потому что у меня большой набор данных. Я не могу указать имя столбца для каждого из них в коде.

Не могли бы вы помочь мне с этим?

1 Ответ

4 голосов
/ 17 октября 2019

Выберите все строки без первого путем индексации и сравните по DataFrame.lt по последней строке, затем sum и преобразуйте Series в одну строку DataFrame по Series.to_frame с транспонированием по DataFrame.T:

df = df.iloc[:-1].lt(df.iloc[-1]).sum().to_frame('count').T
print (df)
       A  B  C  D  E
count  2  2  3  3  4

Альтернатива Numpy с конструктором DataFrame:

arr = df.values
df = pd.DataFrame([np.sum(arr[:-1] < arr[-1], axis=0)], columns=df.columns, index=['count'])
print (df)
       A  B  C  D  E
count  2  2  3  3  4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...