Подсчитать каждое значение в столбце в столбце в кадре данных - PullRequest
1 голос
/ 15 января 2020

Я изо всех сил стараюсь сделать следующее, и мне было интересно, можете ли вы мне помочь.

У меня есть pandas фрейм данных из 2 столбцов. Я хочу подсчитать каждое значение в столбце A в столбце A. Если вхождение превышает 1, выведите ('hello')

Например,

for i in range(1, len(DF)) **if count(DF.iloc[[i],[1]].values)>1:** print('hello') любая помощь, пожалуйста?

Спасибо, H

Ответы [ 2 ]

0 голосов
/ 15 января 2020

Я думаю, вам нужно Series.value_counts

, если вы хотите распечатать один раз привет, если есть какое-либо значение, которое повторяется, используйте:

if df['A'].value_counts().gt(1).any():
    print('hello')

, если вы хотите напечатать привет для каждого значения в серии, которая повторяется:

print('Hello\n'*df['A'].map(df['A'].value_counts().gt(1)).sum())

, если вы хотите напечатать привет для каждого уникального значения в серии, которая повторяется

print('Hello\n'*df['A'].value_counts().gt(1).sum())

Пример

df = pd.DataFrame({'A':[1,2,3,1,4,4,5,7,8,9,3]})
print(df)

    A
0   1
1   2
2   3
3   1
4   4
5   4
6   5
7   7
8   8
9   9
10  3

if df['A'].value_counts().gt(1).any():
    print('hello\n')
print('2 Method\n')    
print('Hello\n'*df['A'].map(df['A'].value_counts().gt(1)).sum())
print('3 Method\n')
print('Hello\n'*df['A'].value_counts().gt(1).sum())

Выход

hello

2 Method

Hello
Hello
Hello
Hello
Hello
Hello

3 Method

Hello
Hello
Hello
0 голосов
/ 15 января 2020

Если вы хотите напечатать 'привет', если есть более одного случая:

if (df['A'] > 1).count() > 1:
    print('hello')

Если вы хотите напечатать 'привет' в каждом случае:

Вы можете использовать df.apply(), чтобы применить лямбда-функцию печати к вашему столбцу:

df['A'].apply(lambda x: print('hello') if x > 1 else None)

Или подсчитать все значения в A, которые больше единицы, и распечатать в al oop:

for i in range(0, (df['A'] > 1).count()):
    print('hello')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...