首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Pandas进阶修炼120题|第五期

大家好,本文为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题进行再次整理汇总发布。

下一篇
举报
领券