我有一个CSV文件,我读到一个Pandas 文件使用多索引头. 下面是一个例子:

df = pd.DataFrame([[1,5,5,2,3], [2,10,4,20,3]])
df.columns = pd.MultiIndex.from_tuples((("1/1/2024","Store"), ("product code 1", "quantity onhand"), ("product code 1",'quantity sold'), ("product code 2", "quantity onhand"), ("product code 2",'quantity sold')))
df
1/1/2024

Store
product code 1

quantity onhand
product code 1

quantity sold
product code 2

quantity onhand
product code 2

quantity sold
1 5 5 2 3
2 10 4 20 3

第一栏中的日期不需要. 我试过堆,但我需要保留store 的原样. 这可以使用pivot来完成吗?

data = [[1,'product code 1',5,5],[1,'product code 2',3,2],[2,'product code 1',4,10],[2,'product code 2',3,20]]
columns = ['Store','Code','quantity sold','quantity onhand']
df2 = pd.DataFrame(data, columns=columns)
df2
Store Code quantity sold quantity onhand
1 product code 1 5 5
1 product code 2 3 2
2 product code 1 4 10
2 product code 2 3 20

推荐答案

您可以暂时将第一列设置为index,然后设置为stack:

(df.set_index(df.columns[0])
   .stack(0)
   .rename_axis(['Store', 'Code'])
   .reset_index()
)

输出:

   Store            Code  quantity onhand  quantity sold
0      1  product code 1                5              5
1      1  product code 2                2              3
2      2  product code 1               10              4
3      2  product code 2               20              3

Python相关问答推荐

聚合具有重复元素的Python字典列表,并添加具有重复元素数量的新键

如何从在虚拟Python环境中运行的脚本中运行需要宿主Python环境的Shell脚本?

当独立的网络调用不应该互相阻塞时,'

迭代嵌套字典的值

为什么NumPy的向量化计算在将向量存储为类属性时较慢?'

不允许访问非IPM文件夹

如何保持服务器发送的事件连接活动?

UNIQUE约束失败:customuser. username

下三角形掩码与seaborn clustermap bug

Flask运行时无法在Python中打印到控制台

Odoo16:模板中使用的docs变量在哪里定义?

BeautifulSoup-Screper有时运行得很好,很健壮--但有时它失败了::可能这里需要一些更多的异常处理?

Tensorflow tokenizer问题.num_words到底做了什么?

什么是一种快速而优雅的方式来转换一个包含一串重复的列,而不对同一个值多次运行转换,

提取数组每行的非零元素

如何在信号的FFT中获得正确的频率幅值

修改.pdb文件中的值并另存为新的

以极轴表示的行数表达式?

如何在Pandas中用迭代器求一个序列的平均值?

更新包含整数范围的列表中的第一个元素