2017-11-01 7 views
0

私はパンダには新しく、データフレームからの行選択に問題があります。続きどのように特定の列に基づいてパンダのデータフレームから同じ行を選択

は私のデータフレームである:私はcolumn1の中に同じ値がある行を選択したい

Index Column1 Column2 Column3 Column4 
    0 1234 500 NEWYORK NY 
    1 5678 700 AUSTIN TX 
    2 1234 300 NEWYORK NY 
    3 8910 235 RICHMOND FL 

、3欄及びcolumn4(これら3列の点では同じ行)。したがって、出力データフレームにはインデックス0と2を持つ行が含まれます。

このカスタム選択の手順を手伝ってもらえますか? dfへのインデックスへのマッパーとして

答えて

2

使用df.duplicated

c = ['Column1', 'Column3', 'Column4'] 
df = df[df[c].duplicated(keep=False)] 

df 

    Index Column1 Column2 Column3 Column4 
0  0  1234  500 NEWYORK  NY 
2  2  1234  300 NEWYORK  NY 

keep=Falseは、フィルタリングのために、すべての重複行をマークします。

+0

Downvoterは、downvoteにフィードバックをいただければ幸いです、おかげで答えを向上させるために! –

+0

私は昨日たくさんのdownvoteを受け取りました...そして理由もありません... too – Wen

+0

@Wen誰もが匿名のdownvotingで失われます...彼らは1人の担当者を失い、私は改善するために私が間違っていた場所を知る機会を失う。 .. –

0

Earler私は、次のアプローチを使用していました:

d = df.T.to_dict() 

dup=[] 
for i in d.keys(): 
    for j in d.keys(): 
     if i!=j: 
      if d[i]['column1']==agg_d[j]['column1'] and d[i]['column3']==d[j]['column3'] and d[i]['column3']==d[j]['column3']: 
       set(dup.append(k[i]['column1']) 

dup_rows = df[df.loc['column1'].isin(dup)] 
関連する問題