一道有关由单行单个产品销量转化为多列销量的题目没有思路,请大家帮忙看看

例如原表如下:

202203 A 32
202202 B 45
202203 B 21
202203 C 15
202202 A 41
202202 C 34

转化表为:
A B C
202202 41 45 34
202203 32 21 15

有哪些比较便捷的方法使用DATAFRAME操作可以将原表转化为新表?

讨论数量: 1

可以使用Pandas的DataFrame和pivot方法将这个表格进行转换:

import pandas as pd

data = [
    ['202203', 'A', 32],
    ['202202', 'B', 45], 
    ['202203', 'B', 21],
    ['202203', 'C', 15],
    ['202202', 'A', 41],
    ['202202', 'C', 34]
]

df = pd.DataFrame(data, columns=['date', 'name', 'value']) 

pivoted = df.pivot(index='date', columns='name', values='value')

print(pivoted)

输出结果:

   name          A   B   C
date                   
202202        41  45  34
202203        32  21  15

主要思路是:

  1. 将数据加载到DataFrame

  2. 使用pivot表进行行列转换,以'date'为索引,'name'为列,单元格值为'value'

  3. 最后得到的pivoted即为需要的转换格式

pandas的pivot方法提供了一个非常方便的途径,来实现类似Excel数据透视表的转换。

这样可以using简洁的代码实现表格结构的转换。

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!