gpt4 book ai didi

python - 在 Python 中使用 MultiIndex 和 to_excel 时如何使 index=False 或删除第一列

转载 作者:行者123 更新时间:2023-11-28 18:03:25 25 4
gpt4 key购买 nike

这是代码示例:

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']

它会默认创建 index=[0, 1, 2]

那么如何在创建 excel 时去掉第一列。

最佳答案

这是一个 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

注意 - 单元格 A1B1 没有合并只是一个小缺点。

关于python - 在 Python 中使用 MultiIndex 和 to_excel 时如何使 index=False 或删除第一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54898713/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com