Seite 1 von 1

Pandas series

Verfasst: Donnerstag 7. Oktober 2021, 15:46
von horstel_horst
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?

Re: Pandas series

Verfasst: Donnerstag 7. Oktober 2021, 16:57
von Sirius3
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?

Re: Pandas series

Verfasst: Donnerstag 7. Oktober 2021, 17:00
von __blackjack__
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`.

Re: Pandas series

Verfasst: Donnerstag 7. Oktober 2021, 17:24
von Sirius3
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()

Re: Pandas series

Verfasst: Donnerstag 7. Oktober 2021, 17:43
von horstel_horst
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?