【发布时间】:2019-08-10 00:21:44
【问题描述】:
我想使用 Python 取消堆叠行标签名称,并已清理数据以删除“总计”和“na”行。
代码:
Description | Table | Chair
***Manila*** | |
Apple | 1 | 3
Pair | 0 | 1
Orange | 1 | 0
Watermelon | 0 | 5
Banana | 0 | 7
***Quezon*** | |
DragonFruit | 0 | 0
StarApple | 0 | 0
Longan | 0 | 1
Cherries | 1 | 2
Mango | 0 | 5
表格图片:
我希望代码看起来如何:
Description | Day | Table | Chair
Manila | 1 | 1 | 3
Manila | 2 | 0 | 1
Manila | 3 | 1 | 0
Manila | 4 | 0 | 5
Manila | 5 | 0 | 7
Quezon | 1 | 0 | 0
Quezon | 2 | 0 | 0
Quezon | 3 | 0 | 1
Quezon | 4 | 1 | 2
Quezon | 5 | 0 | 5
表格图片:
【问题讨论】:
-
欢迎玛莎F!从您提供的示例数据中我无法确定,但请尝试
df = df.reset_index()。说明:当一个pandas索引有连续重复标签时,pandas隐藏所有重复标签,只显示第一个。每行的标签仍然存在,强制它们显示的一种方法是重置索引,默认情况下将其作为最左边的列插入。当然,这会修改 DataFrame,如果您不需要使用索引操作,这可能会很好。 -
@PeterLeimbigler 我已经尝试运行代码 df.reset_index() 除了列索引(来自另一个文档)之外返回相同的值。不确定代码是如何工作的。行标签/标题的输出仍然是马尼拉 NaN NaN NaN。在插入基于 Day 为 NaN 的新列时尝试了 for 循环,结果是一个 12 * 12 表。
-
了解您如何创建数据框可能会有所帮助。
-
@busybear 数据框是使用 df = pd.read_excel(file_path, nrows=100, skiprows= 10, header=1) 创建的。标头 [0,1] 不起作用,因为原始文件有多个 NaN。
标签: python python-3.x pandas numpy python-3.7