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

本文介绍了如何使用Pandas的explode函数对CSV文件中的课程数据进行炸裂和反炸裂操作。首先,通过split函数将星期课程数据分解,然后使用explode进行炸裂,形成每门课程单独一行的格式。接着,对炸裂后的数据进行反炸裂,重新组合成原来的星期-课程结构,并保存为新的CSV文件。示例代码详细展示了整个过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值