wyodrębnij wartość kolumny na podstawie innej kolumny
Utknąłem na wyciąganiu wartości jednej zmiennej warunkującej na inną zmienną. Na przykład, następujący dataframe:
A B
p1 1
p1 2
p3 3
p2 4
Jak mogę uzyskać wartość A
Kiedy B=3
? Za każdym razem, gdy wyodrębniałem wartość A
, otrzymywałem obiekt, a nie ciąg znaków.
6 answers
You could use loc
aby uzyskać serię spełniającą twój stan, a następnie iloc
aby uzyskać pierwszy element:
In [2]: df
Out[2]:
A B
0 p1 1
1 p1 2
2 p3 3
3 p2 4
In [3]: df.loc[df['B'] == 3, 'A']
Out[3]:
2 p3
Name: A, dtype: object
In [4]: df.loc[df['B'] == 3, 'A'].iloc[0]
Out[4]: 'p3'
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-18 04:32:11
Możesz spróbować query
, czyli mniej pisać:
df.query('B==3')['A']
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-31 11:15:18
df[df['B']==3]['A']
, zakładając, że df to twoje pandy.Ramka danych.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-18 01:24:24
Użyj df[df['B']==3]['A'].values
, jeśli chcesz, aby element był sam bez nawiasów
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-04-16 08:08:48
Łatwiej mi myśleć w tych terminach, ale pożyczając od innych odpowiedzi. Żądana wartość znajduje się w serii:
df[*column*][*row*]
Gdzie kolumna i wiersz wskazują wartość, którą chcesz zwrócić. Dla przykładu, column jest 'A', a dla row używasz maski:
df['B'] == 3
Aby uzyskać wartość z serii istnieje kilka opcji:
df['A'][df['B'] == 3].values[0]
df['A'][df['B'] == 3].iloc[0]
df['A'][df['B'] == 3].to_numpy()[0]
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-10-01 17:19:27
male_avgtip=(tips_data.loc[tips_data['sex'] == 'Male', 'tip']).mean()
Pracowałam również nad tym clausingiem i ekstrakcją dla mojego zadania.Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-10-29 19:07:29