我想看看当我在Excel工作表中添加一个新的索引时,我如何添加新的数据。这就是我的意思:
图片1(我的代码当前输出的内容):
图片2(我希望它输出的内容):
我想将[1, 2]
添加到第1行,数据类型为2,将[3, 4]
添加到第2行,数据类型为2。下面是图片1的代码:
import pandas as pd
# Create a Pandas dataframe from the data.
df1 = pd.DataFrame([['a', 'b'], ['c', 'd']],
index=['row 1', 'row 2'],
columns=['col 1', 'col 2'])
# Create a Pandas Excel writer using XlsxWriter as the engine.
writer = pd.ExcelWriter('pandas_simple.xlsx', engine='xlsxwriter')
# Add extra index
new_idx = pd.Index(['data type 1', 'data type 2'])
mi1 = pd.MultiIndex.from_product([df1.index, new_idx])
out1 = df1.reindex(df1.index.repeat(len(new_idx))).set_index(mi1)
# Convert the dataframe to an XlsxWriter Excel object.
out1.to_excel(writer, sheet_name='Sheet1')
# Close the Pandas Excel writer and output the Excel file.
writer.close()
有没有可能的办法做到这一点?
1条答案
按热度按时间vjhs03f71#
slice(None)
可用于选择该级别的所有行。由于要更改level=1
中索引为'data type 2'
的值,请尝试以下操作:完整的代码如下所示:
然后
pd.read_excel('pandas_simple.xlsx', index_col=[0,1])
生成以下帧:另一种方法是改变构造
out1
的方式;使用与df1
相同的“元数据”构建另一个 Dataframe ,并将两者连接,而不是重新索引df1
: