Re: Verstaendnisproblem
Mike Müller <mmueller-Nw5JoyH4ZXncp1/[email protected]>
| Newsgroups | gmane.comp.python.general.german |
|---|---|
| Organization | Python Academy GmbH & Co. KG |
| Message-ID | <[email protected]> |
Am 12.02.21 um 17:30 schrieb Peter Otten:
> On 12/02/2021 16:07, Stefan Schwarzer wrote:
>> On 2021-02-12 15:29, eilfh wrote:
>>> Am Donnerstag, 11. Februar 2021, 18:48:23 CET schrieb Peter Otten:
>>> Hallo, Peter
>>>
>>> danke für Deine Antwort.
>>>
>>> Das war das fehlende Puzzle in meinem Programm
>>>
>>>> >>> x
>>>>
>>>> 0 4
>>>> Name: B, dtype: int64
>>>>
>>>> >>> type(x)
>>>>
>>>> <class 'pandas.core.series.Series'>
>>>>
>>>>
>>>> kannst Du einfach entpacken
>>>>
>>>> >>> [y] = x
>>>> >>> y
>>>>
>>>> 4
>>>
>>>
>>> um ehrlich zu sein, ich versteh's zwar nicht,
>>> aber es läuft und erfüllte genau den Zweck
>>
>> Falls du `[y] = x` meinst, kann ich mir vorstellen, dass das
>> komisch aussieht. Das ist sogenanntes implizites "Tuple
>> unpacking", hier vielleicht eher "List unpacking". Du kannst
>> das auch als `y = x[0]` schreiben; ich denke, das ist klarer.
>
> Wenn x vom Typ tuple oder list ist, gerne; aber pandas ist ziemlich komplex und
> hält immer eine Überraschung bereit:
>
> >>> df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
> >>> ser = df.loc[df.A == 1, "B"]
> >>> ser[0]
> 4
>
> Scheint zu funktionieren, ist aber Zufall:
>
> >>> ser = df.loc[df.A == 2, "B"]
> >>> ser[0]
> Traceback (most recent call last):
> [...]
> KeyError: 0
Wenn du das erste Element möchtest solltest du den Zugriff "position based" [1]
machen:
>>> ser.iloc[0]
5
Dagegen ist:
>>> ser[0]
"label based"
und entspricht:
>>> ser.loc[0]
Außerdem kann man nach `loc` und `iloc` besser googeln als nach `[y] = ser`. ;)
[1]
https://pandas.pydata.org/docs/user_guide/indexing.html#different-choices-for-indexing
>
> Mit Unpacking:
>
> >>> [y] = ser
> >>> y
> 5
>
> D. h. eine Series verhält sich beim Iterieren wie eine Liste, beim Lookup wie
> ein dict.
>
> _______________________________________________
> python-de maillist - [email protected]
> https://mail.python.org/mailman/listinfo/python-de
_______________________________________________
python-de maillist - [email protected]
https://mail.python.org/mailman/listinfo/python-de