У меня есть серия pandas с MultiIndex, и я хочу получить целые числа строк, принадлежащие одному уровню MultiIndex.Получите целочисленный индекс строки серии MultiIndex
Например, если у меня есть образец данных s
s = pandas.Series([10, 23, 2, 19],
index=pandas.MultiIndex.from_product([['a', 'b'], ['c', 'd']]))
, который выглядит следующим образом:
a c 10
d 23
b c 2
d 19
Я хочу, чтобы получить номера строк, которые соответствуют уровню b
. Так вот, я бы получил [2, 3]
в качестве вывода, потому что последние две строки находятся под b
. Кроме того, мне действительно нужна только первая строка, которая принадлежит b
.
Я хотел получить номера, чтобы сравнить их по Серии. Скажем, у меня есть пять объектов серии с уровнем b
. Это данные временных рядов, а b
соответствует условию, которое присутствовало во время некоторых наблюдений (и является дополнительным условием и т. Д.). Я хочу посмотреть, какая из этих серий имеет условия одновременно.
Редактировать: Чтобы уточнить, мне не нужно сравнивать сами значения, просто индексы. Например, в R, если у меня был dataframe:
d = data.frame(col_1 = c('a','a','b','b'), col_2 = c('c','d','c','d'), col_3 = runif(4))
Затем команда which(d$col_1 == 'b')
будет производить результаты, я хочу.
Thanks - Мне действительно нужен целочисленный индексный номер в исходной серии. Поэтому 's.loc ['b']. Head (1)' будет возвращать содержимое, но мне нужно, чтобы он возвращал, где находится '' ', содержимое которого находится. – user2034412
Если вам нужно сравнить locatains в каждой серии, вы должны поместить все свои ряды в список, а затем конкатенировать их. Вы можете получить все значения за один раз, используя 'loc' – b10n