一道有关由单行单个产品销量转化为多列销量的题目没有思路,请大家帮忙看看 | python | python 技术论坛-江南app体育官方入口

例如原表如下:

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年前

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