私は多くの重複値を持つ大きなDataFrame
を持っています。一意の値はList1
に格納されます。次のようにしたいと考えています。条件に基づいて選択された行セットの要素数を数えるにはどうすればよいですか?
- リストにある各値を含むいくつかの行を選択してください。
- 選択した行を繰り返し、非NaN要素の数を数えます。
- カウント値が2以上の場合は、それを新しいリストに格納します。
List1
の各コンポーネントは、すべての場合にのみ、eq_list
に追加する必要があります。 'eq'のカウント値は、> 2です。
単純化されたサンプル入力:
List1 = ['A','B','C','D','E','F','G','H','X','Y','Z']
Sample DF 'ABC':
EQ1 EQ2 EQ3
0 A NaN NaN
1 X Y NaN
2 A X C
3 D E F
4 G H B
所望の出力:
eq_list = ['B','C','D','E','F','G','H','X','Y']
私が試したコードレット:
for eq in List1:
MCS=ABC.loc[MCS_old[:] ==eq]
MCS = MCS.reset_index(drop=True)
for index_new in range(0,len(MCS)-1):
if int(MCS.iloc[[index_new]].count(axis=1))>2:
eq_list.append(raw_input(eq))
print(eq_list)
私は問題が明らかにされていることを願っています。
は、私は右の 'eq_list'は、ユニークな文字の集合であると仮定するのですか? –
'eq_list'は最終出力であり、 'List1'のサブセットであり、繰り返しはありません。あ、はい。私は答えのスレッドで私の最後のコメントでそれをよりよく説明したと思う – controlfreak
PLsは私の答えを参照してください –