(掌握这个,基本就完美无缺的任意按照自己的想法,更改列了。)

背景:

最近有个excel 数据需要转化的过程。 数据量还挺大的,大概有30多万。 需要把某些行变成列,有些列又变成行。 这个操作本身就比较烦躁。

更何况数据量达到了几十万的情况下, excel 基本就卡死了。

1 把城市合为一列

2 将空气类型type 分开为成为列

先贴样本:

转化后的结果:

苦恼了很久。

实践:

  melt 函数讲解,

frame,   -- 需要处理的数据集
id_vars=None, -- 不需要改变的列
value_vars=None,--需要转换的列名,如果剩下的列全部都要转换,就不用写了
var_name=None, --设置对应的维度名
value_name="value", -- 设置对应的度量值名
col_level=None, -- 不知道
        first_data_2 = self.pd.melt(deal_data, id_vars=['date', 'hour', 'type'], value_vars=city_data,
var_name='city', value_name='count_clue').fillna(0)

在这里, deal_data 是需要处理数据集, id_vars  不变的列, date , hour, type , 需要转化的列  数组city_data [] , 理论上应该是不用填,下面全部转化。

对应的维度名:city ,  对应合起来的度量值。count_clue。

这样就把列都合起来了 。

结果展示

然后我们用piovt 函数,把它列 type 同样列 转变成行。

first_data_3 = self.pd.DataFrame(
self.pd.pivot_table(first_data_2, index=['date', 'hour', 'city', ], columns='type', values='count_clue'))

piovt_table ,我懂的太少了。都是照抄的

贴个链接, 以我的理解, index 是需要的列,然后columns 就是要展开的列, value 是要展开的值,就这样。

https://zhuanlan.zhihu.com/p/31952948

最新文章

  1. Data source rejected establishment of connection, message from server: "Too many connections"解决办法
  2. CMD打包文件,解压文件
  3. python 生成器和递归
  4. h-ui前端框架
  5. c#开发Mongo笔记第三篇
  6. windows上自动设置java环境变量的脚本
  7. 四项技术 助你提高SQL Server的性能
  8. 生成元(Digit Generator ,ACM/ICPC Seoul 2005 ,UVa 1583)
  9. 【暑假】[深入动态规划]UVa 1628 Pizza Delivery
  10. Installshield: custom action return value
  11. (原)ippicvmt.lib(ippinit.obj) : error LNK2005: _ippSetCpuFeatures@8 已经在 ippcoremt.lib(ippinit.obj) 中定义
  12. javascript深入之location对象和history对象
  13. CSSd的优先级别
  14. 解决SQL Server 2008无法连接127.0.0.1的问题
  15. window下安装itchat库
  16. os及os.path练习题
  17. Mysql读写分离方案-Amoeba环境部署记录
  18. mysql 权限管理 目录
  19. MySQL、Mariadb 复制原理
  20. Beta 冲刺 七

热门文章

  1. JAVA总结--设计模式
  2. Git-第一篇认识git,核心对象,常用命令
  3. Sql Server 之游标
  4. HDU 6649 Data Structure Problem(凸包+平衡树)
  5. FZUOJ-2275 Game
  6. 攻防世界--The_Maya_Society
  7. vue中的scope
  8. JavaScript、ES6中的类的继承
  9. vim ctags
  10. 2019-9-2-visual-studio-2015-warning-MSB3246