#python #pandas
#python #pandas
Вопрос:
Я хотел бы сделать столбец [0] (т. Е. Доход от аренды, Управление и т. Д.) Моим индексом:
После индексации следует удалить вертикальный столбец с левой стороны, который должен выглядеть так:
Я мог бы сделать это вручную, просто скопировав столбец [0] в качестве его индекса и удалив впоследствии столбец [0]:
income_df.index = income_df[0]
income_df.index.name = 'Category'
income_df = income_df.drop(0, axis = 1)
Но строки 1 и 3 кажутся мне избыточными.
Обычно, ЕСЛИ заголовки не RangeIndex(start=0, stop=5, step=1)
были, а состояли из имен (например: Категория, Q1, Q2, Q3, Q4), я бы просто использовал:
df.set_index('Category')
Могу ли я использовать set_index
для выполнения индексации столбца без строк имен?
Если да, то как?
Комментарии:
1.
df.set_index([0]).rename_index(index='Category')
?
Ответ №1:
Столбцы по-прежнему имеют «метки» как таковые, они просто оказываются [0, 1, 2, 3,…]. Таким образом, вы все равно можете использовать set_index
для установки индекса то же самое, что и для любых других имен столбцов:
df = pd.DataFrame([["a", 1], ["b", 2], ["c", 3], ["d", 4]])
print(df.columns)
print(df)
RangeIndex(start=0, stop=2, step=1)
0 1
0 a 1
1 b 2
2 c 3
3 d 4
установка индекса:
new_df = df.set_index(0)
print(new_df)
1
0
a 1
b 2
c 3
d 4
Комментарии:
1. Вы правы. Спасибо за ваш подробный ответ. Прости меня за то, что я даже спрашиваю…