python炸裂操作函数explode及反炸裂

explode函数使用

现有一个csv文件记录课程,数据格式如下图:

图一
现要把每星期的课程拆出来,形成每个课程单独一行的格式(类似一维表)

星期课程
周一历史
周一生物

实现代码

# -*- coding: utf-8 -*-
"""
Created on Fri Apr 15 21:04:26 2022
利用pandas进行炸裂
@author: zlt
"""

import pandas as pd

if __name__ == "__main__":
    
    df_file = pd.read_csv("D:\Codecode\excelFile\practice\每周课程0415.csv", encoding="utf-8")
    # 把课程以空格分割后,存入lessons列
    # series类型转为str类型处理
    df_file["lessons"] = df_file["课程"].str.split(" ")
    # 根据lessons炸裂
    df_file = df_file.explode("lessons")
    print(df_file)
    # 结果写入新的文件中
    df_file.to_csv("D:\Codecode\excelFile\practice\每周课程0415结果.csv", encoding="utf-8", mode="w", index=False)
    print("finish")

输出的文件结果:
在这里插入图片描述

反炸裂

使用上述结果,作为基础数据,进行“反炸裂”。

# 读取结果文件
df_file = pd.read_csv("D:\Codecode\excelFile\practice\每周课程0415结果.csv",encoding="utf-8")
# 只用到“星期”和“lesson”两列数据
df_file_t = df_file[["星期","lessons"]]
print(df_file_t)

# 处理
df_res=df_file_t.groupby("星期").agg(','.join)
print(df_res)

df_res2 = df_res["lessons"].str.split(',',expand=True)
print("df_res2:\n ",df_res2)
# 结果写入新的文件中
df_res2.to_csv("D:\Codecode\excelFile\practice\每周课程0415结果-新1.csv", encoding="utf-8", mode="w", index=True)

在这里插入图片描述
最终结果
在这里插入图片描述

有兴趣可看SQL实现 Hive SQL:实现炸列(列转行)以及逆操作(行转列)

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值