对数据框中该列中的列中的每个值进行计数

问题描述 投票:0回答:2

我正在努力做下面的事情,想知道是否可以帮助我。

我有2列的熊猫数据框。我想对A列中A列中的每个值进行计数。如果出现的次数大于1,则print('hello')

例如,

for i in range(1, len(DF)) **if count(DF.iloc[[i],[1]].values)>1:** print('hello')有什么帮助吗?

谢谢,H

python pandas loops count
2个回答
0
投票

[如果要出现多个事件,则要打印'hello':

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

如果您想在每次出现时打印'hello':

您可以使用df.apply()将打印lambda函数应用于您的列:

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

或计算A中大于1的所有值并循环打印:

for i in range(0, (df['A'] > 1).count()):
    print('hello')

0
投票

我认为您需要Series.value_counts

如果您想打印一次,如果有重复使用的任何值,您好:

Series.value_counts

如果要为重复的系列中的每个值打印问候:

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

如果要为重复的系列中的每个unique值打个​​招呼

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())
© www.soinside.com 2019 - 2024. All rights reserved.