Как сравнить значение со значениями столбцов в кадре данных pandas - PullRequest
0 голосов
/ 14 декабря 2018
        000012  000013   000014   ...    004004  005585  007682
0          0     3.8      3.7   ...       1.1     4.8     0.4
1          0       0      0.0   ...       0.0       5     7.8
2          0       0      0.0   ...       0.0     1.6     2.1
3          0       0      2.0   ...       2.3       0     0.4
4          0       0      1.3   ...       0.2     1.3     0.1
5          0       0      0.0   ...       0.0     4.1     3.5
6          0       0      0.0   ...       0.6     0.2     0.3
7          0       0      0.0   ...       0.0       0     7.1
8          0       0      0.0   ...       0.0       0     0.0

У меня есть что-то вроде этого.Мне нужно сравнить значение каждого столбца, чтобы узнать, сколько раз появляются значения больше 1 в каждом столбце.

Я пробовал это:

s.set_index(s.index).gt(1).sum(1).reset_index(name='result').fillna(s)

, но появляется ошибка: не удалось обработать 1 со значениями блока '>', не поддерживаемыми между экземплярами 'numpy.ndarray' и 'int '

Значения столбцов являются числами с плавающей точкой.

Кто-то знает, как я это решаю ??Спасибо!

Ответы [ 3 ]

0 голосов
/ 14 декабря 2018

пожалуйста, попробуйте этот код:

import pandas as pd
import numpy as np
datan = np.random.randn(36).reshape(9, 4)
df = pd.DataFrame(data=datan, columns=list("ABCD"))
output = {}
for c in df.columns:
output[c] = df[c][df[c] >= 1].sum()
df2 = pd.DataFrame(output, index=[0])
df2
0 голосов
/ 15 апреля 2019

Попробуйте это:

import pandas as pd
dc={}  #The keys will identify the column name and its value differentiate how many times appears values greater than 1 .

    for i in list(dataframe.columns.values):
      dc[i] =  dataframe.loc[dataframe[i].gt(1),i].count()  
0 голосов
/ 14 декабря 2018

Я не могу дать вам точный код, поскольку ваша таблица не ясна, но вы можете попробовать использовать query(): -

df_filtered = df.query('a > 1')

, где a - заголовок столбца, которым вы являетесьпытаясь отфильтровать.

, чтобы добавить несколько условий, которые вы можете использовать & между столбцами

df_filtered = df.query('a > 1 & b > 1')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...