I am kind of getting stuck on extracting value of one variable conditioning on another variable. For example, the following dataframe:
A B
p1 1
p1 2
p3 3
p2 4
How can I get the value of A
when B=3
? Every time when I extracted the value of A
, I got an object, not a string.
You can try query
, which is less typing:
df.query('B==3')['A']
df[df['B']==3]['A']
, assuming df is your pandas.DataFrame.
Use df[df['B']==3]['A'].values
if you just want item itself without the brackets
male_avgtip=(tips_data.loc[tips_data['sex'] == 'Male', 'tip']).mean()
I have also worked on this clausing and extraction operations for my assignment.
It's easier for me to think in these terms, but borrowing from other answers. The value you want is located in the series:
df[*column*][*row*]
where column and row point to the value you want returned. For your example, column is 'A' and for row you use a mask:
df['B'] == 3
To get the value from the series there are several options:
df['A'][df['B'] == 3].values[0]
df['A'][df['B'] == 3].iloc[0]
df['A'][df['B'] == 3].to_numpy()[0]
Source: Stackoverflow.com