excel插入一列日期 pandas_用 Python 轻松搞定 Excel 中的 20 个常用操作

本文通过动态图与Python代码结合,展示了如何利用Python进行数据生成、存储、筛选、插入、删除、排序、处理缺失值、去重、格式修改、数据交换、合并、拆分、分组、计算、统计、可视化、抽样、创建数据透视表以及使用vlookup等Excel中的常见操作。
摘要由CSDN通过智能技术生成

e9592a32924283ff8fd51444ea8ed4be.gif

b989eb516270a013aa8ef485b9662e16.png

来源 |早起Python(ID: zaoqi-python)

Excel与Python都是数据分析中常用的工具,本文将使用动态图(Excel)+代码(Python)的方式来演示这两种工具是如何实现数据的读取、生成、计算、修改、统计、抽样、查找、可视化、存储等数据处理中的常用操作!

fa7762d47c009c87c442a84678a194b0.png 数据读取

说明:读取本地Excel数据 Excel Excel读取本地数据需要打开目标文件夹选中该文件并打开 2dc8ec488069e5a6c1f4139eeb3c9576.gif Pandas Pandas支持读取本地Excel、txt文件,也支持从网页直接读取表格数据,只用一行代码即可,例如读取上述本地Excel数据可以使用pd.read_excel("示例数据.xlsx") adef3a75e47f6e2adaa571d73c333930.png a4f889cce712407df2be9fb4226d4b40.png

数据生成

说明:生成指定格式/数量的数据 Excel 以生成10*2的0—1均匀分布随机数矩阵为例,在Excel中需要使用rand()函数生成随机数,并手动拉取指定范围 a27f7b36316a1bf24a5d695624b7f4d4.gif Pandas 在Pandas中可以结合NumPy生成由指定随机数(均匀分布、正态分布等)生成的矩阵,例如同样生成10*2的0—1均匀分布随机数矩阵为,使用一行代码即可:pd.DataFrame(np.random.rand(10,2)) 533b192d6dc17a271aa802fce024deac.png 17de1bff97ab2b2e5ff3b30b8bdaa1b5.png

数据存储

说明:将表格中的数据存储至本地 Excel 在Excel中需要点击保存并设置格式/文件名 dd2eecafb24a08ccae347ccd0e0e34e3.gif Pandas 在Pandas中可以使用pd.to_excel("filename.xlsx")来将当前工作表格保存至当前目录下,当然也可以使用to_csv保存为csv等其他格式,也可以使用绝对路径来指定保存位置 678307918f295b7573df944074ec032a.png 9b0704dd282910831fa04fd3d18a4b5e.png

数据筛选

说明:按照指定要求筛选数据 Excel 使用我们之前的示例数据,在Excel中筛选出薪资大于5000的数据步骤如下 9991fee26005d64f72229c443017ea20.gif Pandas 在Pandas中,可直接对数据框进行条件筛选,例如同样进行单个条件(薪资大于5000)的筛选可以使用df[df['薪资水平']>5000],如果使用多个条件的筛选只需要使用&(并)与|(或)操作符实现 c69c78f47320fb5df599c10053ff739e.png 1b07b793c82b6362d2e67de4caa3f0c4.png

数据插入

说明:在指定位置插入指定数据 Excel 在Excel中我们可以将光标放在指定位置并右键增加一行/列,当然也可以在添加时对数据进行一些计算,比如我们就可以使用IF函数(=IF(G2>10000,"高","低")),将薪资大于10000的设为高,低于10000的设为低,添加一列在最后 9a308fc575a62bd44e006fad6f6485c8.gif Pandas 在pandas中,如果不借助自定义函数的话,我们可以使用cut方法来实现同样操作
bins = [0,10000,max(df['薪资水平'])]
group_names = ['低','高']
df['new_col'] = pd.cut(df['薪资水平'], bins, labels=group_names)
2525250807b95f6136f606e3f65112a9.png 2bbb959f5378d46821c6f6011b524ed0.png

数据删除

说明:删除指定行/列/单元格 Excel 在Excel删除数据十分简单,找到需要删除的数据右键删除即可,比如删除刚刚生成的最后一列 88e6533f59d47148c94ac85152135da2.gif Pandas 在pandas中删除数据也很简单,比如删除最后一列使用del df['new_col']即可 2c54588fa9b4436fd965490b0b1c5989.png 5389ead2d22d04b94a888efb62f559f3.png

数据排序

说明:按照指定要求对数据排序 Excel 在Excel中可以点击排序按钮进行排序,例如将示例数据按照薪资从高到低进行排序可以按照下面的步骤进行 5bd8a4c4f1cb8232b42b0563fcf34182.gif Pandas 在pandas中可以使用sort_values进行排序,使用ascending来控制升降序,例如将示例数据按照薪资从高到低进行排序可以使用df.sort_values("薪资水平",ascending=False,inplace=True) 4d751518bbbeae3affb98ed5c21f2a9f.png 9d770da14e4752acb501add4fd685cc9.png

缺失值处理

说明:对缺失值(空值)按照指定要求处理 Excel 在Excel中可以按照查找—>定位条件—>空值来快速定位数据中的空值,接着可以自己定义缺失值的填充方式,比如将缺失值用上一个数据进行填充。 5d567d5e3ba52498ff695ae07e3c1b41.gif Pandas 在pandas中可以使用data.isnull().sum()来检查缺失值,之后可以使用多种方法来填充或者删除缺失值,比如我们可以使用df = df.fillna(axis=0,method='ffill')来横向/纵向用缺失值前面的值替换缺失值 fd7955daa75a2cc3634a89b4692ad77a.png 82bd9c6921a568766773119142aec4bb.png

数据去重

说明:对重复值按照指定要求处理 Excel 在Excel中可以通过点击数据—>删除重复值按钮并选择需要去重的列即可,例如对示例数据按照创建时间列进行去重,可以发现去掉了196 个重复值,保留了 629 个唯一值。 2ac20760fc465da8db7a651f4b8566b8.gif Pandas 在pandas中可以使用drop_duplicates来对数据进行去重,并且可以指定列以及保留顺序,例如对示例数据按照创建时间列进行去重df.drop_duplicates(['创建时间'],inplace=True),可以发现和Excel处理的结果一致,保留了 629 个唯一值。 2dca5793a6b3f63853dacdcf90f26497.png 643e781f5a5645e8a9359abda2517314.png

格式修改

说明:修改指定数据的格式 Excel 在Excel中可以选中需要转换格式的数据之后右键—>修改单元格格式来选择我们需要的格式 ce6639143826b6744ef2285e21ea0ab9.gif Pandas 在Pandas中没有一个固定修改格式的方法,不同的数据格式有着不同的修改方法,比如类似Excel中将创建时间修改为年-月-日可以使用df['创建时间'] = df['创建时间'].dt.strftime('%Y-%m-%d') 9c267e5e48bcadb984da63de3ec39a5d.png

98ee0070acf99b750b68e37a62728c51.png

数据交换

说明:交换指定数据 Excel 在Excel中交换数据是很常用的操作,以交换示例数据中地址与岗位两列为例,可以选中地址列,按住shift键并拖动边缘至下一列松开即可 97aa1e83751d8cd48f8c30b15d647123.gif Pandas 在pandas中交换两列也有很多方法,以交换示例数据中地址与岗位两列为例,可以通过修改列号来实现 b0286516635df5ad084bf5f1ff867e12.png 05f06948e2551cc1340c8e1b34fd652e.png

数据合并

说明:将两列或多列数据合并成一列 Excel 在Excel中可以使用公式也可以使用Ctrl+E快捷键完成多列合并,以公式为例,合并示例数据中的地址+岗位列步骤如下 e0816bda4eddbde24236c02ce35e74bc.gif Pandas 在Pandas中合并多列比较简单,类似于之前的数据插入操作,例如合并示例数据中的地址+岗位列使用df['合并列'] = df['地址'] + df['岗位'] 92e59cfe7baa9dc680bc0e68cc0f4b32.png 51eec3f92d7af4c6bdd9eceb25150e56.png

数据拆分

说明:将一列按照规则拆分为多列 Excel 在Excel中可以通过点击数据—>分列并按照提示的选项设置相关参数完成分列,但是由于该列含有[]等特殊字符,所以需要先使用查找替换去掉。 0038edd620cb8e3e6d9eefcee8db6764.gif Pandas 在Pandas中可以使用.split来完成分列,但是在分列完毕后需要使用merge来将分列完的数据添加至原DataFrame,对于分列完的数据含有[]字符,我们可以使用正则或者字符串lstrip方法进行处理,但因不是pandas特性,此处不再展开。 f99540ab60ae28a885938cee38d43cd6.png

e6d973c894ece6da83b6b9f9de352c78.png

数据分组

说明:对数据进行分组计算 Excel 在Excel中对数据进行分组计算需要先对需要分组的字段进行排序,之后可以通过点击分类汇总并设置相关参数完成,比如对示例数据的学历进行分组并求不同学历的平均薪资 acbc1afa709ba72a5920085a2fbf1bb8.gif Pandas 在Pandas中对数据进行分组计算可以使用groupby轻松搞定,比如使用df.groupby("学历").mean()一行代码即可对示例数据的学历进行分组并求不同学历的平均薪资,结果与Excel一致 138ab21d2a77037f132fcdb23691fa80.png

29f44b98b87c1c1688cd4345c73c876a.png

数据计算

说明:对数据进行一些计算 Excel 在Excel中有很多计算相关的公式,比如可以使用COUNTIFS来统计薪资大于10000的岗位数量有518个 0ee637ce617d52a938b8fcae39e38639.gif Pandas 在Pandas中可以直接使用类似数据筛选的方法来统计薪资大于10000的岗位数量len(df[df["薪资水平"]>10000]) a097ec0f8cb43b013ec6539ea58f16b5.png

50d724ea94596bbc568782dce62d9143.png

数据统计

说明:对数据进行一些统计计算 Excel 在Excel中有很多统计相关的公式,也有现成的分析工具,比如对薪资水平列进行描述性统计分析,可以通过添加工具库之后点击数据分析按钮并设置相关参数 d886a88042c89070e9e2e5216dac6491.gif Pandas 在pandas中也有现成的函数describe快速完成对数据的描述性统计,比如使用df["薪资水平"].describe()即可得到薪资列的描述性统计结果 d4594e153b2b6e612fb096d96cfe0303.png

8bb702cdb67fafe0c9dbba74e2a568c2.png

数据可视化

说明:对数据进行可视化 Excel 在Excel中可以通过点击插入并选择图表来快速完成对数据的可视化,比如制作薪资的直方图,并且有很多样式可以直接使用 c06575341f9fd5ee7e9d0856fe3dc608.gif Pandas 在Pandas中也支持直接对数据绘制不同可视化图表,例如直方图,可以使用plot或者直接使用hist来制作df["薪资水平"].hist() d97784ef884231a8b131bdfe498ff0e1.png d46735ac0983fb32dec03a45e8bd7ae5.png

数据抽样

说明:对数据按要求采样 Excel 在Excel中抽样可以使用公式也可以使用分析工具库中的抽样,但是仅支持对数值型的列抽样,比如随机抽20个示例数据中薪资的样本 d01c783f1a23d8fcada5487dc48ebbdb.gif Pandas 在pandas中有抽样函数sample可以直接抽样,并且支持任意格式的数据抽样,可以按照数量/比例抽样,比如随机抽20个示例数据中的样本 f4910d132cd470f05b0f24da4cc65bae.png b9a8b11182015a187455ab5d40dc60fb.png

数据透视表

说明:制作数据透视表 Excel 数据透视表是一个非常强大的工具,在Excel中有现成的工具,只需要选中数据—>点击插入—>数据透视表即可生成,并且支持字段的拖取实现不同的透视表,非常方便,比如制作地址、学历、薪资的透视表 182b4dfb4bf8f4ee89a69818723a76ae.gif Pandas 在Pandas中制作数据透视表可以使用pivot_table函数,例如制作地址、学历、薪资的透视表pd.pivot_table(df,index=["地址","学历"],values=["薪资水平"]),虽然结果一样,但是并没有Excel一样方便调整与多样 5154eda2c22f039e5a202b004821c561.png

f29213c1c9f4293aafce27a2c7a67605.png

vlookup

说明:利用VLOOKUP查找数据 Excel VLOOKUP算是EXCEL中最核心的功能之一了,我们用一个简单的数据来进行示 例 254d8e2a9abe9be40a4f4d233e79676f.gif Pandas 在Pandas中没有现成的vlookup函数,所以实现匹配查找需要一些步骤,首先我们读取该表格 acb8a2b36a07cf066c0314b2544e15f9.png 接着将该dataframe切分为两个 df7ef2fcc1ddf15d541a982a00b403a5.png 最后修改索引并使用update进行两表的匹配 5599121c3216a8fa152282547355abce.png 以上就是使用Pandas来演示如何实现Excel中的常用操作的全部过程,其实可以发现Excel的优点就是大多由交互式的点击完成数据处理,而Pandas则完全依赖于代码,对于有些操作比如数据透视表,用Excel制作更加方便,而有些操作比如数据的分组、计算等,因Pandas可以与NumPy等其他优秀的Python库结合而显得更加强大,所以我们在处理数据时也需要正确选择使用的工具!

1149628c81530a5172d9f351ae53119b.png

c49b029b643ef0236e02346b128407fd.png

更多精彩推荐

☞干货!如何用 Python+KNN 算法实现城市空气质量分析与预测?

☞放弃美帝 80 万年薪,回国找工作时竟遇到这个难题...

☞马斯克身家超马云,网友:看完他的履历后一点也不惊讶

☞阿里巴巴副总裁司罗:达摩院如何搭建NLP技术体系?

☞数说DApp:DeFi和DEX迅猛增长或令以太坊超越比特币

☞数据库怎么选择?终于有人讲明白了

4631ced6d8b235a6b69b12a5706f38e5.png点分享27d1425ac531c7d319461afa009f5ca7.png点点赞433a3cd45b11601c4563477771d290cc.png点在看
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值