#python #pandas #locate
#python #pandas #найдите
Вопрос:
Допустим, у меня есть набор данных, подобный этому :
df = pandas.DataFrame(numpy.random.randn(4,4),columns=list('ABCD'))
df['test'] = ['A','B','A','C']
Я хотел бы извлечь строки с буквой «A» и получить значения ряда, скажем, столбца «C». Как можно сделать это без циклического включения в серию?
Большое спасибо.
Ответ №1:
Как насчет
df[df['test'].str.contains('A')]['C']
Ответ №2:
Использование фильтрации pandas:
df[df["test"].str.contains("A")]["C"]
Ответ №3:
Если равно ‘A’ — это то, что вам нужно
df.loc[df.test.eq('A'), 'C']
В противном случае
df.loc[df.test.str.contains('A'), 'C']