Pandas series

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
horstel_horst
User
Beiträge: 18
Registriert: Montag 27. September 2021, 19:09

Ich habe einen DFs und möchte anhand eines value_count einen neuen DF erstellen. In dem neuen DF, soll jedoch nicht der count, sondern das dazugehörige Element stehen.

Bei meinem u.a. Beispiel soll also 'a' und 'b' in einem neuen DF stehen, aber nicht als Index. Count.index liefert jedoch einen Multiindex.

Code: Alles auswählen

import pandas as pd
item = ['a','a','b','b','c']
df = pd.DataFrame(item, columns=['Items'])
count = df.value_counts().iloc[:2]
count.index
Wie übertrage ich die "Werte" 'a' und 'b' in einen neuen DF?
Sirius3
User
Beiträge: 17712
Registriert: Sonntag 21. Oktober 2012, 17:20

Was ist ein DFs? Dein Code sagt mir, wenn ich ihn ausführe, dass ein DataFrame kein value_counts hat.
Ich sehe auch nirgends einen Multiindex.
Wie sieht also Dein wirklicher Code aus?
Was ist Dein wirklicher Input?
Was ist Dein Output? Und wie sieht Dein gewünschter Output aus?
Benutzeravatar
__blackjack__
User
Beiträge: 13006
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Ist das vielleicht eine Versionsfrage? Bei mir geht das:

Code: Alles auswählen

In [16]: import pandas as pd 
    ...: item = ['a','a','b','b','c'] 
    ...: df = pd.DataFrame(item, columns=['Items']) 
    ...: count = df.value_counts().iloc[:2] 
    ...: count.index                                                            
Out[16]: 
MultiIndex([('b',),
            ('a',)],
           names=['Items'])
Und da ist auch der `MultiIndex`.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Sirius3
User
Beiträge: 17712
Registriert: Sonntag 21. Oktober 2012, 17:20

Ah, so schnell ist man veraltet.
Daher konnte ich das Problem gar nicht verstehen, weil die alte Version die richtige Syntax erzwingt:

Code: Alles auswählen

count = df.Items.value_counts()
horstel_horst
User
Beiträge: 18
Registriert: Montag 27. September 2021, 19:09

Zunächst, besten Dank für die Rückmeldung.

Der Code funktioniert schon. Ich weiß jedoch nicht, wie ich den gewünschten dataframe (DF) erzeugen kann. Ziel ist:

Code: Alles auswählen

output = ['a','b']
df = pd.DataFrame(output, columns=['Item'])
df

Nur soll der 'ouput' eben aus dem Multindex gezogen werden. Habe ich mich verständlich ausgedrückt?
Antworten