Я извлекаю подмножество своей DataFrame по индексу, используя либо .xs, либо .loc (они, похоже, ведут себя одинаково). Когда мое условие извлекает несколько строк, результат остается в кадре данных. Когда извлекается только одна строка, она автоматически преобразуется в серию. Я не хочу этого поведения, так как это означает, что мне нужно обрабатывать несколько случаев downstream (разные наборы методов, доступные для серии vs dataframe).Как сохранить идентификатор dataframe pandas при извлечении одной строки
In [1]: df = pd.DataFrame({'a':range(7), 'b':['one']*4 + ['two'] + ['three']*2,
'c':range(10,17)})
In [2]: df.set_index('b', inplace=True)
In [3]: df.xs('one')
Out[3]:
a c
b
one 0 10
one 1 11
one 2 12
one 3 13
In [4]: df.xs('two')
Out[4]:
a 4
c 14
Name: two, dtype: int64
In [5]: type(df.xs('two'))
Out [5]: pandas.core.series.Series
можно вручную преобразовать эту серию обратно в dataframe, но это, кажется громоздким и также потребует случай тестирования, чтобы увидеть, если я должен сделать это. Есть ли более чистый способ просто получить DataFrame для начала?