Ответ 1
Может быть, попробуйте set_index()?
df = df.set_index([2])
Когда я читаю в CSV, могу сказать pd.read_csv('my.csv', index_col=3)
и он устанавливает третий столбец как индекс.
Как я могу сделать то же самое, если у меня есть фрейм данных pandas в памяти? И как я могу сказать, чтобы использовать первую строку также как индекс? Первый столбец и строка - это строки, остальная часть матрицы - целая.
Может быть, попробуйте set_index()?
df = df.set_index([2])
Вы можете попробовать это независимо от количества строк
df= pd.read_csv('data.csv', index_col=0)
Создание первого (или n-го) столбца индекса в порядке возрастания verboseness:
df.set_index(list(df)[0])
df.set_index(df.columns[0])
df.set_index(df.columns.tolist()[0])
Создание первой (или n-той) строки индекса:
df.set_index(df.iloc[0].values)
Вы можете использовать оба варианта, если вам нужен многоуровневый индекс:
df.set_index([df.iloc[0], df.columns[0]])
Обратите внимание, что использование столбца в качестве индекса автоматически отбрасывает его как столбец. Использование строки в качестве индекса - это всего лишь операция копирования и не будет выводить строку из DataFrame.
Чтобы установить первый столбец в качестве индекса, вы можете попробовать:
df = df.set_index([[0]])