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

Pandas进阶修炼120题|当Pandas遇上NumPy

作者头像
刘早起
发布2020-04-22 16:37:45
9350
发布2020-04-22 16:37:45
举报
文章被收录于专栏:早起Python早起Python

本文接着更新Pandas进阶修炼120题,Pandas的强大不仅仅因为它自身的强大,更在于当它和NumPy、Matplotlib、Sklearn等库结合使用时发挥的巨大威力,本期就挑选了一些Pandas+NumPy相关的题目供各位读者练习,如果感兴趣,请一定要敲一遍代码。

81

数据查看

题目:导入并查看pandas与numpy版本

难度:⭐

答案

代码语言:javascript
复制
import pandas as pd
import numpy as np
print(np.__version__)
print(pd.__version__)

82

数据创建

题目:从NumPy数组创建DataFrame

难度:⭐

备注

使用numpy生成20个0-100随机数

答案

代码语言:javascript
复制
tem = np.random.randint(1,100,20)
df1 = pd.DataFrame(tem)

83

数据创建

题目:从NumPy数组创建DataFrame

难度:⭐

备注

使用numpy生成20个0-100固定步长的数

答案

代码语言:javascript
复制
tem = np.arange(0,100,5)
df2 = pd.DataFrame(tem)

84

数据创建

题目:从NumPy数组创建DataFrame

难度:⭐

备注

使用numpy生成20个指定分布(如标准正态分布)的数

答案

代码语言:javascript
复制
tem = np.random.normal(0, 1, 20)
df3 = pd.DataFrame(tem)

85

数据创建

题目:将df1,df2,df3按照行合并为新DataFrame

难度:⭐⭐

答案

代码语言:javascript
复制
df = pd.concat([df1,df2,df3],axis=0,ignore_index=True)

86

数据创建

题目:将df1,df2,df3按照列合并为新DataFrame

难度:⭐⭐

期望结果

代码语言:javascript
复制
0 1 2
0 95 0 0.022492
1 22 5 -1.209494
2 3 10 0.876127
3 21 15 -0.162149
4 51 20 -0.815424
5 30 25 -0.303792
...............

答案

代码语言:javascript
复制
df = pd.concat([df1,df2,df3],axis=1,ignore_index=True)
df

87

数据查看

题目:查看df所有数据的最小值、25%分位数、中位数、75%分位数、最大值

难度:⭐⭐

答案

代码语言:javascript
复制
print(np.percentile(df, q=[0, 25, 50, 75, 100]))

88

数据修改

题目:修改列名为col1,col2,col3

难度:⭐

答案

代码语言:javascript
复制
df.columns = ['col1','col2','col3']

89

数据提取

题目:提取第一列中不在第二列出现的数字

难度:⭐⭐⭐

答案

代码语言:javascript
复制
df['col1'][~df['col1'].isin(df['col2'])]

90

数据提取

题目:提取第一列和第二列出现频率最高的三个数字

难度:⭐⭐⭐

答案

代码语言:javascript
复制
temp = df['col1'].append(df['col2'])
temp.value_counts().index[:3]

91

数据提取

题目:提取第一列中可以整除5的数字位置

难度:⭐⭐⭐

答案

代码语言:javascript
复制
np.argwhere(df['col1'] % 5==0)

92

数据计算

题目:计算第一列数字前一个与后一个的差值

难度:⭐⭐

答案

代码语言:javascript
复制
df['col1'].diff().tolist()

93

数据处理

题目:将col1,col2,clo3三列顺序颠倒

难度:⭐⭐

答案

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

94

数据提取

题目:提取第一列位置在1,10,15的数字

难度:⭐⭐

答案

代码语言:javascript
复制
df['col1'].take([1,10,15])

95

数据查找

题目:查找第一列的局部最大值位置

难度:⭐⭐⭐⭐

备注

即比它前一个与后一个数字的都大的数字

答案

代码语言:javascript
复制
tem = np.diff(np.sign(np.diff(df['col1'])))
np.where(tem == -2)[0] + 1

96

数据计算

题目:按行计算df的每一行均值

难度:⭐⭐

答案

代码语言:javascript
复制
df[['col1','col2','col3']].mean(axis=1)

97

数据计算

题目:对第二列计算移动平均值

难度:⭐⭐⭐

备注

每次移动三个位置,不可以使用自定义函数

答案

代码语言:javascript
复制
np.convolve(df['col2'], np.ones(3)/3, mode='valid')

98

数据修改

题目:将数据按照第三列值的大小升序排列

难度:⭐⭐

答案

代码语言:javascript
复制
df.sort_values("col3",inplace=True)

99

数据修改

题目:将第一列大于50的数字修改为'高'

难度:⭐⭐

答案

代码语言:javascript
复制
df.col1[df['col1'] > 50]= '高'

100

数据计算

题目:计算第一列与第二列之间的欧式距离

难度:⭐⭐⭐

备注

不可以使用自定义函数

答案

代码语言:javascript
复制
np.linalg.norm(df['col1']-df['col2'])
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-03-28,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档