多头数据帧堆栈类型

2024-09-29 06:32:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个问题,当我试图堆叠一个数据帧与2头。这是我的数据框:

import pandas as pd

multicol = pd.MultiIndex.from_tuples([('Car', 'Megane'), ('Car', 5008)])
df = pd.DataFrame([[1, 2], [2, 4]], index=['Diesel', 'Escence'], columns=multicol)

当我尝试堆叠此df时,出现以下错误:

TypeError: '<' not supported between instances of 'str' and 'int'

我想这个错误是由于我的第二个头包含一个字符串和一个int。问题是我的实际df来自一个Excel文件

如何转换第二个标题字符串


Tags: 数据字符串fromimportpandasdfas错误
1条回答
网友
1楼 · 发布于 2024-09-29 06:32:29

你的猜测是对的。如果将所有类型都更改为str,则可以正常工作:

df.columns = pd.MultiIndex.from_tuples([(str(c), str(v)) for c, v in df.columns.values])
>>> df.stack()

                Car
Diesel  5008    2
        Megane  1
Escence 5008    4
        Megane  2

在这里,元组是使用df.columns.values访问的,然后使用列表理解生成字符串元组,最后使用^{}返回

相关问题 更多 >