我正在努力做下面的事情,想知道您是否可以帮助我。
我有2列的熊猫数据框。我想对A列中A列中的每个值进行计数。如果出现的次数大于1,请打印('hello')
例如,
for i in range(1, len(DF))
**if count(DF.iloc[[i],[1]].values)>1:**
print('hello')
有什么帮助吗?
谢谢, 高
答案 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