2016-03-30 6 views
0

Ich habe einen Datenrahmen wieWie Daten in einem Datenrahmen mit Pandas organisieren

 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 

für die Jahre 2014 und 2015 wo alle Strings dupliziert werden. Ich brauche meine Daten wie drucken

  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 

Ich mag doppelte Strings löschen und stattdessen jedes Paar zum ersten Ausgang 2014 drucken und dann 2015. Ich habe versucht, dies zu tun:

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() 

Aber es druckt falsch. Was habe ich falsch gemacht?

Antwort

0

können Sie pandas.DataFrame.drop_duplicates verwenden:

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 

mit subset:

Spaltenbeschriftung oder eine Folge von Etiketten, optional Nur bestimmte Spalten zur Identifizierung von Dubletten prüfen, verwenden standardmäßig alle Spalten

+0

Es löscht doppelte Zeichenketten. Wie kann es nach "paar Websites" sortieren? Ich versuche 'sort_values ​​('Paar von Websites', aufsteigend = False). ', Aber nicht alle Paare wurden sortiert. Einige sind außer Betrieb –

+0

Es sollte so funktionieren, wie Sie es taten. Ansonsten stelle eine andere Frage mit dem, was du hast, was du möchtest und was du versucht hast. – jrjc

+0

@ user116873 Wenn es die Frage beantwortet, akzeptiere es, damit andere wissen, dass es dein Problem behoben hat. – jrjc

Verwandte Themen