Как сделать index = False или избавиться от первого столбца при использовании MultiIndex и to_excel в Python - PullRequest
0 голосов
/ 27 февраля 2019

Вот пример кода:

import numpy as np
import pandas as pd
import xlsxwriter

tuples = [('bar', 'one'), ('bar', 'two'), ('baz', 'one'), ('baz', 'two'), ('foo', 'one'), ('foo', 'two'), ('qux', 'one'), ('qux', 'two')]

index = pd.MultiIndex.from_tuples(tuples, names=['first', 'second'])

iterables = [['bar', 'baz', 'foo', 'qux'], ['one', 'two']]

pd.MultiIndex.from_product(iterables, names=['first', 'second'])

df = pd.DataFrame(np.random.randn(3, 8), index=['A', 'B', 'C'], columns=index)

print(df)

writer = pd.ExcelWriter('test.xlsx', engine='xlsxwriter')
df.to_excel(writer, sheet_name='test1')

Создан вывод Excel: enter image description here

Теперь, как избавиться от первого столбца.

Даже если я не упомяну index = ['A', 'B', 'C'] или names = ['first', 'second']

По умолчанию будет создан индекс= [0, 1, 2]

Итак, как избавиться от этого первого столбца при создании Excel.

1 Ответ

0 голосов
/ 27 февраля 2019

Исправлено 5 строк -

Оригинальный код -

tuples = [('bar', 'one'), ('bar', 'two'), ('baz', 'one'), ('baz', 'two'), ('foo', 'one'), ('foo', 'two'), ('qux', 'one'), ('qux', 'two')]
index = pd.MultiIndex.from_tuples(tuples, names=['first', 'second'])
iterables = [['bar', 'baz', 'foo', 'qux'], ['one', 'two']]
df = pd.DataFrame(np.random.randn(3, 8), columns=index) 

Новые 5 строк, которые будут добавлены после кода выше -

# Setting first column as index
df = df.set_index(('bar', 'one'))

# Removing 'bar', 'one' frm index name
df.index.name = ''

# Setting new columns Multiindex
tuples = [('', 'two'), ('baz', 'one'), ('baz', 'two'), ('foo', 'one'), ('foo', 'two'), ('qux', 'one'), ('qux', 'two')]
index_new = pd.MultiIndex.from_tuples(tuples, names=['bar', 'one'])
df.columns = index_new

Позже напишите в excelкак вы делаете -

# Writing to excel file keeping index
writer = pd.ExcelWriter('test.xlsx', engine='xlsxwriter')
df.to_excel(writer, sheet_name='test1')

img

Примечание. Существует лишь небольшой недостаток, заключающийся в том, что ячейки A1 и B1 не являютсяслиты.

...