Я как бы застрял при извлечении значения одной переменной, обусловливающей другую переменную. Например, следующий фрейм данных:
A B
p1 1
p1 2
p3 3
p2 4
Как я могу узнать, A
когда B=3
? Каждый раз, когда я извлекал значение A
, я получал объект, а не строку.
item()
в конце.df.query
иpd.eval
кажутся хорошими для этого варианта использования. Для получения информации оpd.eval()
семействе функций, их возможностях и вариантах использования посетите страницу Dynamic Expression Evaluation в pandas, используя pd.eval () .Ответы:
Вы можете использовать
loc
для получения серии, которая удовлетворяет вашему условию, а затемiloc
для получения первого элемента:источник
df.loc[df['B'] == 3, 'A'].item()
у меня тоже работает.Вы можете попробовать
query
, что меньше печатает:источник
df[df['B']==3]['A']
, предполагая, что df - это ваш pandas.DataFrame.источник
][
часть.Используйте,
df[df['B']==3]['A'].values
если вам просто нужен сам предмет без скобокисточник
][
часть.[0]
в конце, чтобы получить доступ к значению.Я также работал над этой операцией наложения и извлечения для моего задания.
источник