计算数据框的列中的列中的每个值

时间:2020-01-15 16:51:44

标签: python pandas loops count

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

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

例如,

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

谢谢, 高

2 个答案:

答案 0 :(得分: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')

答案 1 :(得分:0)

我认为您需要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())

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

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