Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

A pandas dataframe has 4 columns:

df.columns = ['col1', 'col2', 'question', 'answer']

How do I index a single entry of the 'answer' column, by indexing the dataframe based on criteria being met for the first columns?

i.e.:

df['col1'=='apple' and 'col2'=='guitar'].answer

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
561 views
Welcome To Ask or Share your Answers For Others

1 Answer

You can select values after filtering, but not recommended, because if set values similar way possible warning:

s = df.loc[(df['col1']=='apple') & (df['col2']=='guitar')].answer

Better way is use DataFrame.loc for filter by mask and by column name:

s = df.loc[(df['col1']=='apple') & (df['col2']=='guitar'), 'answer']

Or using DataFrame.query:

s = df.query("col1=='apple' and col2=='guitar'").answer

Output is one or more values in Series, if need first one to scalar:

first = s.iat[0]

If need solution working also if no match:

first  = next(iter(s), 'no match')

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...