Excel数据正确的填充方式-Python自动化办公-fillna

Hello, 大家好

 

相信大家都已经在微信上,抖音上,或者别人的嘴里,听说过Python 编程,人工智能,大数据啥啥啥的。

但是那终究是个概念,我们让概念变成现实,那就得放下自己的观念,其实我也可以学编程,只要你有一台电脑,就随时随地可以学Python编程。

这是给没接触过Python 编程人的建议,赶紧来学吧,别整的像,我是干产品的,干运营的,干管理的,干保洁,干保安的,干等等工作的,学Python 跟我无关一样。

实际上,互联网上有几种不同的声音。

 

第一种:Python 编程就是忽悠人的,学完了,也不会写代码,也不会用。

这种人就是花了很多钱,很多精力,最终没有坚持下来的人群,因为他们缺乏各种练习,

导致手动能力很差,对自己完全丧失自信,已经很丧了,你问他如何学Python, 那基本会被同化。

 

第二种:我们是培训机构,我么培训Python 人工智能,数据分析,大数据,月薪过万轻轻松松,赶紧来学吧。

培训机构最牛的就是销售人员,他们会过度美化技术,美化培训行业,存在即合理,通过培训,如果学苗好,老师负责,全部就业,学会编程,几率是蛮大的,

如果学苗差,都是初中、小学毕业的小伙伴学习编程,和同为大学生学习编程,因为两种人群基础不同,没有站在同一起跑线,导致教学过程中很不公平,

就会导致一部分学历差的,学习的时候跟不上,导致落差很大。

老师、机构在没有及时纠正每个学员,的漏洞知识,时间长了,必然会淘汰一批人,并且社会上众多公司有一种恶俗的行为首先看第一学历,来判断一个人的能力。

导致很多学编程,即使学会了,也不会快速就业。这就是风险。

第三种:Python 能干着,能干那,助教老师真可爱,学起来真有意思,导致一看就懂,一学就会,一做就废。

因为会根据基础 差的人群,去相应的去除掉Python 编程里的复杂的知识点,甚至找一些非常简单的案例,让学员,一看就懂,一做就会的案例。

但是实际需求中,需求复杂多变,需要结合很多技术模块,很多细节处理,课程中可是没有的,周期短,导致学完并不能,直接上手工作,需要很长一段时间,去练习。

这种一看就懂,有个好处,起码前期你理解它的骨架,好多血肉和细节,是我们缺失的, 还需要找人交流,百度咨询。

总结:

学习方式有很多,自学、培训、找人教、买书,看视频,去参加培训,每种方式都是需要做的就是,知识投资,时间投资。

没错,学习就是一种投资,对于每天都能挤出时间,非常自律的人,我推荐自学,因为这种投资比较划算。

不自律,每天有大把时间、也不爱学习、理解力差,我推荐去参加培训,几千到3万不等,我觉得还好,大培训机构,小培训机构,社群模式都行,找到一个学习氛围比较好,出现问题有人解答就行。

源数据

      类型         订单号       类型.1  amount   SKU                   日期
0   Order  S11001-001      price     150  aaa1  2019-09-10 00:00:00
1   Order  S11001-001  promotion      -3   NaN                  NaN
2   Order  S11001-001        fee       2   NaN                  NaN
3   Order  S11001-001      price     145  aaa1  2019-09-10 00:00:00
4   Order  S11001-001  promotion      -6   NaN                  NaN
5   Order  S11001-001        fee       5   NaN                  NaN
6    coup  S11001-002      price     167  aaa3  2019-10-12 00:00:00
7    coup  S11001-002  promotion      -5  aaa3                  NaN
8    coup  S11001-002        fee       3  aaa3  2019-10-12 00:00:00
9   other  B11001-003      price     150  aaa3  2019-10-12 00:00:00
10  other  B11001-003  promotion      -3   NaN                  NaN
11  other  B11001-003        fee       2   NaN                  NaN
12  Order  C11001-003      price     145  aaa3           01.09.2019
13  Order  C11001-003  promotion      -6  aaa3           01.09.2019
14  Order  C11001-003        fee       5  aaa3                  NaN
15   cest  S11001-004      price     167  aaa4                  NaN
16   cest  S11001-004  promotion      -5   NaN           01.10.2019
17   cest  S11001-004        fee       3   NaN           01.10.2019
18  Order  K11001-005      price     145  aaa3           01.10.2019
19  Order  K11001-005  promotion      -6  aaa3           01.10.2019
20  Order  K11001-005        fee       5  aaa3           05.07.2020
21  Order  K11001-006      price     167  aaa3           05.07.2020
22  Order  K11001-006  promotion      -5  aaa3           05.07.2020
23  Order  K11001-006        fee       3  aaa3           05.07.2020

 

一、针对某列向下填充

 

对sku 列,进行向下填充

import pandas as pd

order = pd.read_excel(r'E:\ZhangTongle\office\test2.xlsx')
order['SKU']= order['SKU'].fillna(method='ffill')

 

显示结果

0   Order  S11001-001      price     150  aaa1  2019-09-10 00:00:00
1   Order  S11001-001  promotion      -3  aaa1                  NaN
2   Order  S11001-001        fee       2  aaa1                  NaN
3   Order  S11001-001      price     145  aaa1  2019-09-10 00:00:00
4   Order  S11001-001  promotion      -6  aaa1                  NaN
5   Order  S11001-001        fee       5  aaa1                  NaN
6    coup  S11001-002      price     167  aaa3  2019-10-12 00:00:00
7    coup  S11001-002  promotion      -5  aaa3                  NaN
8    coup  S11001-002        fee       3  aaa3  2019-10-12 00:00:00
9   other  B11001-003      price     150  aaa3  2019-10-12 00:00:00
10  other  B11001-003  promotion      -3  aaa3                  NaN
11  other  B11001-003        fee       2  aaa3                  NaN
12  Order  C11001-003      price     145  aaa3           01.09.2019
13  Order  C11001-003  promotion      -6  aaa3           01.09.2019
14  Order  C11001-003        fee       5  aaa3                  NaN
15   cest  S11001-004      price     167  aaa4                  NaN
16   cest  S11001-004  promotion      -5  aaa4           01.10.2019
17   cest  S11001-004        fee       3  aaa4           01.10.2019
18  Order  K11001-005      price     145  aaa3           01.10.2019
19  Order  K11001-005  promotion      -6  aaa3           01.10.2019
20  Order  K11001-005        fee       5  aaa3           05.07.2020
21  Order  K11001-006      price     167  aaa3           05.07.2020
22  Order  K11001-006  promotion      -5  aaa3           05.07.2020
23  Order  K11001-006        fee       3  aaa3           05.07.2020

 

 

二、对分组之后的某组填充

coup_fill  = order.groupby("类型").get_group("coup")[['SKU']].fillna(method='ffill')

for i in coup_fill.index:
    order.loc[i,'SKU']  = coup_fill.loc[i,'SKU']

首先我们groupby 通过列:“类型“ 进行分组,然后获取coup组,并取得coup组的sku 列索引,进行向下填充。并返回dataframe 数据。

我们在通过for循环,获取新的dataframe 的索引,并通过索引,更新数据。更新数据使用loc 关键字。

 

验证

order[order['类型'].isin(['coup'])]

接下来我们来通过isin 去查询一下,我们更新 的数据。通过下方的数据,来验证,我们的数据的准确性。

 

显示

   类型     订单号       类型.1  amount   SKU                   日期
6  coup  S11001-002      price     167  aaa3  2019-10-12 00:00:00
7  coup  S11001-002  promotion      -5  aaa3                  NaN
8  coup  S11001-002        fee       3  aaa3  2019-10-12 00:00:00

通过显示可以看出,我们只对SKU列进行了填充。

 

 

 

如果想学习更多Python 处理Excel的技术,请加入我们的的学习交流群:367203382,群里有大牛坐镇

让你学习Python心里有底,信心倍增

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

百里图书

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值