2017-11-30 1 views
0

Ich frage mich, ob mir jemand mit einer kleinen Abfrage helfen könnte. Ich habe derzeit einen massiven Datensatz mit einer großen Anzahl von Zeilen und wollte einen kleineren Datenrahmen erstellen dass zieht nur zwei Spalten aus den größeren und wie oft jeder Name in diesem Kapitel in diesem Fall ‚Vorkommen‘ aufgetretenDie am häufigsten aufgerufenen Namen in einem Dataset basierend auf bestimmten Spalten

Der Code unten ist, was ich

df1 = (Dec16.groupby(["BNF Chapter", "Name"]).size().reset_index(name="Occurrence")) 
df1 

bin mit Aufgetragen diese

BNF Chapter  Name          Occurrence 
1     Aluminium hydroxide       2 
1     Aluminium hydroxide + Magnesium trisilicate 2 
1     Alverine          702 
....... 
21    Polihexanide          2 
21    Potassium hydroxide        32 
21    Sesame oil          22 
21    Sodium chloride         222 

Was ich möchte, ist die Top 10 am häufigsten aufgetretenen Namen für ein bestimmtes Kapitel, wie der Datensatz so groß ist.

Zum Beispiel kann ein Datenrahmen, die nur Die Top 10 häufigsten Namen in Kapitel 1

Wie würde ich diese gehen über das Tun zieht?

Vielen Dank !!!

Antwort

0

Lassen Sie uns ein kleines Beispiel mit einem Zufallsvariablengenerator machen.

import pandas as pd 
import numpy as np 
# we create random integers in 3 columns 
df=pd.DataFrame(np.random.randint(0,10,(1000,3)), columns=["A","B","C"]) 
# we want to count the repetitions of C given A and B 
result = df.groupby(["A","B"]).count() 
# the result will print something like this, counting the repetitions of A and B 
#  C 
# A B  
# 0 0 11 
# 1 10 
# 2 5 
# 3 12 
# 4 9 
# 5 12 
# 6 7 
# 7 8 
Verwandte Themen