複数の条件下におけてdataframeをdropする方法
以下の表(dataframe)が与えられたとします。
列["max_"]は同一の"kigou"における"point"が最も高いデータに対してTrueと記載されています。
|kigou|memo|point|max_|
|:--|:--:|--:|
|AA|〇|20|NaN
|AA|×|40|True
|CC|〇|50|True
|CC|〇|10|NaN
|CC|×|20|NaN
以下のルールに基づいて処理を行いたいです。
列["max_"] == 'True"のデータについて、
・kigouとmemoが同じものは残す
・kigouが同じだけれども、memoが異なるデータ(行)は削除
つまり、次のような表(dataframe)を得たいです。
|kigou|memo|point|max_
|:--|:--:|--:|
|AA|×|40|True
|CC|〇|50|True
|CC|〇|10|NaN
pandasのdropを用いて検討しましたが、うまくできませんでした。
また明らかに間違っていますが、以下のようなfor文を回しても出来ませんでした。
どなたかヒントを頂けないでしょうか。
python3
1for i in range(len(data)): 2 if data.loc[i,'max_'] == 'True': 3 a = data.loc[i,'kigou'] 4 b = data2.loc[i,'memo'] 5 for j in range(len(data)): 6 if data.loc[j,'memo'] != a and data2.loc[j,'kigou'] == b: 7 data.drop(data.index[j])
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/15 01:50