我需要帮助处理熊猫数据帧



我有一个项目的大数据框架,简化如下。我正在寻找一种好的方法来找到每行中重复超过或等于2次的项目(A,B,C(
例如,第1行为A,第2行的结果为B。

简化df:

df = pd.DataFrame({'C1':['A','B','A','A','C'],
'C2':['B','A','A','C','B'],
'C3':['A','B','A','C','C']}, 
index =['ro1','ro2','ro3','ro4','ro5']                            
)

就像mozway建议的那样,我们不知道你的输出是什么。我想你需要一份清单。

你可以试试这样的东西。

import pandas as pd 
from collections import Counter
holder = []
for index in range(len(df)):
temp = Counter(df.iloc[index,:].values)
holder.append(','.join([key for key,value in temp.items() if value >= 2]))

由于您有三列并且始终是非唯一的,因此可以方便地使用mode

df.mode(1)[0]

输出:

ro1    A
ro2    B
ro3    A
ro4    C
ro5    C
Name: 0, dtype: object

如果您可能具有所有唯一值(例如A/B/C(,则需要检查该模式是否唯一:

m = df.mode(1)[0]
m2 = df.eq(m, axis=0).sum(1).le(1)
m.mask(m2)

最新更新