文科生自学Python-数据转置和炸裂实例分享

--知中有行,行中有知;以知为行,知行合一,学习编程成就更好的自己--

Python语言简洁生动,特别适合文科生学习入门IT世界,用几十行代码就能够做一个完整的爬虫脚本,开发效率杠杠的!短时间内即可解决工作和学习中碰到的各种棘手问题。(本人外语专业毕业,机缘巧合爱上编程,自学道路曲曲折折,痛并快乐!)在这里总结一下自学Python遇到的难点和重点,分享码过的代码和要点总结,希望能够给初学者一点启示和鼓励,同时愿意结交更多大神交流有助提升自己的水平。

今天分享一下数据处理技巧相关的干货,涉及了两个重要基础知识点,即是pandas中的转置(Transpose)和炸裂(Explode),要知道数据工程师和数据科学家的日常工作中需要处理大量不规则的脏数据,会碰到各种稀奇古怪的难题,所以接下来的案例展示过程中一定能理解:数据处理工作需要耐心和细心,平时做好积累和总结,日后面对更加复杂的场景才会游刃有余的解决。

下面来看看案例吧:

文科生自学Python-数据转置和炸裂实例分享

从截图看到只有两个字段,相关任务是:

1-提取数据中书籍种类和订单编号,并将新数据集以书籍种类转置展示。

2-根据每个订单号对应的数量展开多行,数量每行赋值1。

1.读取和查看数据

文科生自学Python-数据转置和炸裂实例分享

2.通过str.split方法获取想要的字段数据集

文科生自学Python-数据转置和炸裂实例分享

3.对新数据集名重命名,使用df.columns=[""]方法

文科生自学Python-数据转置和炸裂实例分享

4.通过pd.merge方法把初始和新生数据集合按index主键拼接

文科生自学Python-数据转置和炸裂实例分享

可以看到第一个任务已完成大半,剩下的只需要转置即可。

5.重置索引序列,将书籍种类作为索引列,使用df.set_index方法

文科生自学Python-数据转置和炸裂实例分享

6.使用Transpose方法转置完成第一个任务

文科生自学Python-数据转置和炸裂实例分享

7.构造自定义函数方便生成辅助列,对应生成的就是数量列表

文科生自学Python-数据转置和炸裂实例分享

8.使用Explode方法进行炸裂,把对应列表实现多行分裂

文科生自学Python-数据转置和炸裂实例分享

这里可以看到基本上已经完成了,例如:B1001数量为三也生成了三行。

9.数量全部赋值为1,完成第二个任务

文科生自学Python-数据转置和炸裂实例分享

代码汇总如下:

import pandas as pd
import numpy as np
import os
def Set_Work_Path(x):
    try:
        os.chdir(x)
        route = os.getcwd()
        return route
    except Exception:
        print("No Result")
work_path = r"E:DATA12AUG21"
display(Set_Work_Path(work_path))

#get the data
data = pd.read_excel("Sample.xlsx",sheet_name="DATA",header=0)
display(data)

#get info splitted into a part
part = data["数据"].str.split("+",expand=True)
display(part)

#rename columns names
part.columns = ["种类","订单号"]
display(part)

#get the two datasets together with index 
df = pd.merge(left=data,right=part,how="left",left_index=True,right_index=True)
display(df)

#reset index
df_change = df.set_index("种类")
display(df_change)

df_change_T = df_change.T
display(df_change_T)

#define a function
def Get_List_Data(x):
    list = []
    for i in range(x):
        list.append(i)
    return list

df["list"] = df["数量"].apply(Get_List_Data)
display(df)

df = df.explode("list")
display(df)

df["数量"] = 1
display(df)

通过这个案例不仅知道如何使用TransposeExplode,也涉及了merge,set_indexstr.split等其他实用的基础知识点。学好编程最重要的是:干中学,学中干,知行合一,才能把杂乱的知识融会贯通形成体系为我所用!!!

END

我为人人,人人为我!!欢迎大家关注,点赞和转发!!!

~~人生不是赛场,梦想不容退场~~不断努力学习蜕变出一个更好的自己,不断分享学习路上的收获和感悟帮助他人成就自己!!!

展开阅读全文

页面更新:2024-04-28

标签:杠杠   数据   数据处理   知识点   字段   实例   订单号   索引   种类   成就   数量   案例   两个   书籍   代码   方法   科技

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top