2016-03-30 10 views
0

とデータフレーム内のデータを整理するために私はすべての文字列が重複している年20142015ためがどのようにパンダ

 used_at common users      pair of websites 
0  2014   1364     avito.ru and e1.ru 
1  2014   1364     e1.ru and avito.ru 
2  2014   1716     avito.ru and drom.ru 
3  2014   1716     drom.ru and avito.ru 
4  2014   1602     avito.ru and auto.ru 
5  2014   1602     auto.ru and avito.ru 
6  2014   299   avito.ru and avtomarket.ru 
7  2014   299   avtomarket.ru and avito.ru 
8  2014   579     avito.ru and am.ru 
9  2014   579     am.ru and avito.ru 

のようなデータフレームを持っています。私は重複している文字列を削除し、代わりに第一の出力2014、その後2015に各ペアを印刷したい

  used_at common users      pair of websites 
0  2014   1364     avito.ru and e1.ru 
1  2015   1208     avito.ru and e1.ru 
2  2014   1716     avito.ru and drom.ru 
3  2015   897     avito.ru and drom.ru 

ように私のデータを印刷する必要があります。 私はこれを行うことを試みた:

all_common_users = df.groupby([df['used_at'].dt.year]).apply(f).reset_index(drop=True, level=1).reset_index() 

common_users = all_common_users.groupby(all_common_users.index/2).first().sort_values('pair of websites') 


# keep only 'interesting' columns 
common_users = common_users[['pair of websites','used_at','common users']] 
common_users.columns = ['pair of websites','year','common users'] 

df = common_users[common_users.groupby('pair of websites')['common users']].sort_values('pair of websites', ascending=False).reset_index() 

をしかし、それは間違って印刷します。私は何を間違えたのですか?

あなたが pandas.DataFrame.drop_duplicates使用することができます

答えて

0

subset

df.drop_duplicates(subset=["used_at", "common users"]) 
    used_at common users   pair of websites 
0  2014   1364   avito.ru and e1.ru 
2  2014   1716  avito.ru and drom.ru 
4  2014   1602  avito.ru and auto.ru 
6  2014   299 avito.ru and avtomarket.ru 
8  2014   579   avito.ru and am.ru 

を:オプションのみ、デフォルトの使用により、重複を識別するためのすべての列を特定 列を検討したラベルの

列ラベルまたはシーケンス、

+0

重複する文字列を削除します。どのようにして 'ウェブサイトのペア 'でソートできるのですか?私は 'sort_values(ウェブサイトのペア、昇順= False)を試してみました。 'しかし、すべてのペアがソートされているわけではありません。いくつかはアウトオブオーダー –

+0

あなたがしたように動作するはずです。それ以外の場合は、あなたが持っているもの、好きなもの、試したものについて別の質問をしてください。 – jrjc

+0

@ user116873質問に答えた場合はそれを受け入れ、他の人が問題を解決したことを知るようにします。 – jrjc