前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Pandas进阶修炼120题|第五期

Pandas进阶修炼120题|第五期

作者头像
刘早起
发布2020-04-22 17:50:36
7460
发布2020-04-22 17:50:36
举报
文章被收录于专栏:早起Python
大家好,本文为Pandas进阶修炼120题最后一期,在本期我整理了一些在Pandas中比较重要但是前几期没有体现的函数与操作供各位读者练习,如果感兴趣,请一定要敲一遍代码。

101

数据读取

题目:从CSV文件中读取指定数据

难度:⭐⭐

备注

从数据1中的前10行中读取positionName, salary两列

答案

代码语言:javascript
复制
df = pd.read_csv('数据1.csv',encoding='gbk', usecols=['positionName', 'salary'],nrows = 10)

102

数据读取

题目:从CSV文件中读取指定数据

难度:⭐⭐

备注

从数据2中读取数据并在读取数据时将薪资大于10000的为改为高

答案

代码语言:javascript
复制
df = pd.read_csv('数据2.csv',converters={'薪资水平': lambda x: '高' if float(x) > 10000 else '低'} )

103

数据计算

题目:从dataframe提取数据

难度:⭐⭐⭐

备注

从上一题数据中,对薪资水平列每隔20行进行一次抽样

期望结果

答案

代码语言:javascript
复制
df.iloc[::20, :][['薪资水平']]

104

数据处理

题目:将数据取消使用科学计数法

难度:⭐⭐

输入

代码语言:javascript
复制
df = pd.DataFrame(np.random.random(10)**10, columns=['data'])

期望结果

答案

代码语言:javascript
复制
df.round(3)

105

数据处理

题目:将上一题的数据转换为百分数

难度:⭐⭐⭐

期望结果

答案

代码语言:javascript
复制
df.style.format({'data': '{0:.2%}'.format})

106

数据查找

题目:查找上一题数据中第3大值的行号

难度:⭐⭐⭐

答案

代码语言:javascript
复制
df['data'].argsort()[::-1][7]

107

数据处理

题目:反转df的行

难度:⭐⭐

答案

代码语言:javascript
复制
df.iloc[::-1, :]

108

数据重塑

题目:按照多列对数据进行合并

难度:⭐⭐

输入

代码语言:javascript
复制
df1= pd.DataFrame({'key1': ['K0', 'K0', 'K1', 'K2'],
'key2': ['K0', 'K1', 'K0', 'K1'],
'A': ['A0', 'A1', 'A2', 'A3'],
'B': ['B0', 'B1', 'B2', 'B3']})

df2= pd.DataFrame({'key1': ['K0', 'K1', 'K1', 'K2'],
'key2': ['K0', 'K0', 'K0', 'K0'],
'C': ['C0', 'C1', 'C2', 'C3'],
'D': ['D0', 'D1', 'D2', 'D3']})

答案

代码语言:javascript
复制
pd.merge(df1, df2, on=['key1', 'key2'])

109

数据重塑

题目:按照多列对数据进行合并

难度:⭐⭐

备注

只保存df1的数据

答案

代码语言:javascript
复制
pd.merge(df1, df2, how='left', on=['key1', 'key2'])

110

数据处理

题目:再次读取数据1并显示所有的列

难度:⭐⭐

备注

数据中由于列数较多中间列不显示

答案

代码语言:javascript
复制
df = pd.read_csv('数据1.csv',encoding='gbk')
pd.set_option("display.max.columns", None)
df

111

数据查找

题目:查找secondType与thirdType值相等的行号

难度:⭐⭐

答案

代码语言:javascript
复制
np.where(df.secondType == df.thirdType)

112

数据查找

题目:查找薪资大于平均薪资的第三个数据

难度:⭐⭐⭐

答案

代码语言:javascript
复制
np.argwhere(df['salary'] > df['salary'].mean())[2]

113

数据计算

题目:将上一题数据的salary列开根号

难度:⭐⭐

答案

代码语言:javascript
复制
df[['salary']].apply(np.sqrt)

114

数据处理

题目:将上一题数据的linestaion列按_拆分

难度:⭐⭐

答案

代码语言:javascript
复制
df['split'] = df['linestaion'].str.split('_')

115

数据查看

题目:查看上一题数据中一共有多少列

难度:⭐

答案

代码语言:javascript
复制
df.shape[1]

116

数据提取

题目:提取industryField列以'数据'开头的行

难度:⭐⭐

答案

代码语言:javascript
复制
df[df['industryField'].str.startswith('数据')]

117

数据计算

题目:按列制作数据透视表

难度:⭐⭐⭐

答案

代码语言:javascript
复制
pd.pivot_table(df,values=["salary","score"],index="positionId")

118

数据计算

题目:同时对salary、score两列进行计算

难度:⭐⭐⭐

答案

代码语言:javascript
复制
df[["salary","score"]].agg([np.sum,np.mean,np.min])

119

数据计算

题目:对不同列执行不同的计算

难度:⭐⭐⭐

备注

对salary求平均,对score列求和

答案

代码语言:javascript
复制
df.agg({"salary":np.sum,"score":np.mean})

120

数据计算

题目:计算并提取平均薪资最高的区

难度:⭐⭐⭐⭐

答案

代码语言:javascript
复制
df[['district','salary']].groupby(by='district').mean().sort_values('salary',ascending=False).head(1)

以上就是Pandas进阶修炼120题第五期全部内容,也是该系列最后一期的内容,如果对本期内容有任何疑问或者更好的方法欢迎给我留言。我会结合所有读者给出的新方法对全部120题进行再次整理汇总发布。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-04-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 早起Python 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档