簡體   English   中英

計算數據框中列中列中的每個值

[英]Count each value in a column within the column in dataframe

我正在努力執行以下操作,想知道您是否可以幫助我。

我有一個 2 列的熊貓數據框。 我想計算 A 列中 A 列中的每個值。如果出現次數超過 1,則 print('hello')

例如,

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

謝謝,H

如果要在出現多次時打印 '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')

我認為你需要Series.value_counts

如果你想打印一次 hello 如果有任何重復使用的值:

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

如果要為重復的系列中的每個值打印 hello:

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

如果要為重復的系列中的每個唯一值打印 hello

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM