从多个列索引创建多行

Posted

技术标签:

【中文标题】从多个列索引创建多行【英文标题】:Create multiple rows from several column indexes 【发布时间】:2022-01-08 01:31:20 【问题描述】:

请问您能帮帮我吗?这是我的原始数据集的结构:

Country 2020 2021
Ecuador Value1 Value2
Canada Value1 Value2

我想得到这个结构,所以年份本身就是一个索引,而不是多个列:

Country Year Index
Ecuador 2020 Value1
Ecuador 2021 Value2
Canada 2020 Value1
Canada 2021 Value2

非常感谢!

【问题讨论】:

df.melt 【参考方案1】:

您的问题与question 类似。可以使用pandas的@​​987654322@方法

df.melt(id_vars=['Country'], var_name='Year', value_name='Index')

输出是:

      Country  Year  Index
   0  Ecuador  2020  Value1
   1   Canada  2020  Value1
   2  Ecuador  2021  Value2
   3   Canada  2021  Value2

【讨论】:

非常感谢!比我想象的要容易..

以上是关于从多个列索引创建多行的主要内容,如果未能解决你的问题,请参考以下文章

pandas读取csv数据header参数指定作为列索引的行索引列表形成复合(多层)列索引使用iloc基于行索引位置列表筛选dataframe数据中指定位置的多个数据行

使用行、列索引从矩阵中索引值

用于搜索的 Pandas 列索引?

熊猫将第一个多索引转换为行索引,将第二个多索引转换为列索引

pandas使用read_csv函数读取csv数据header参数指定作为列索引的行索引列表形成复合(多层)列索引使用方括号[]基于最外层列索引名称索引列数据

pandas读取csv数据index_col参数指定作为行索引的数据列索引列表形成复合(多层)行索引使用方括号[]基于列索引名称元组索引列数据(index tuple)