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

Pandas进阶修炼120题|第二期

作者头像
TechFlow-承志
发布2020-03-25 15:31:49
8330
发布2020-03-25 15:31:49
举报
文章被收录于专栏:TechFlowTechFlow

21

数据读取

题目:读取本地EXCEL数据

难度:⭐

答案

代码语言:javascript
复制
df = pd.read_excel('pandas120.xlsx')

本期部分习题与该数据相关

22

数据查看

题目:查看df数据前5行

难度:⭐

期望输出

答案

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

23

数据计算

题目:将salary列数据转换为最大值与最小值的平均值

难度:⭐⭐⭐⭐

期望输出

答案

代码语言:javascript
复制
import re
for i in range(len(df)):
    str1 = df.ix[i,2]
    k = re.findall(r"\d+\.?\d*",str1)
    salary = ((int(k[0]) + int(k[1]))/2)*1000
    df.ix[i,2] = salary

24

数据分组

题目:将数据根据学历进行分组并计算平均薪资

难度:⭐⭐⭐

期望输出

代码语言:javascript
复制
education salary            
不限 19600.000000
大专 10000.000000
本科 19361.344538
硕士 20642.857143

答案

代码语言:javascript
复制
df.groupby('education').mean()

25

时间转换

题目:将createTime列时间转换为月-日

难度:⭐⭐⭐

期望输出

答案

代码语言:javascript
复制
for i in range(len(df)):
    df.ix[i,0] = df.ix[i,0].to_pydatetime().strftime("%m-%d")

26

数据查看

题目:查看索引、数据类型和内存信息

难度:⭐

期望输出

代码语言:javascript
复制
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 135 entries, 0 to 134
Data columns (total 4 columns):
createTime 135 non-null object
education 135 non-null object
salary 135 non-null int64
categories 135 non-null category
dtypes: category(1), int64(1), object(2)
memory usage: 3.5+ KB

答案

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

27

数据查看

题目:查看数值型列的汇总统计

难度:⭐

答案

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

28

数据整理

题目:新增一列根据salary将数据分为三组

难度:⭐⭐⭐⭐

输入

期望输出

答案

代码语言:javascript
复制
bins = [0,5000, 20000, 50000]
group_names = ['低', '中', '高']
df['categories'] = pd.cut(df['salary'], bins, labels=group_names)

29

数据整理

题目:按照salary列对数据降序排列

难度:⭐⭐

答案

代码语言:javascript
复制
df.sort_values('salary', ascending=False)

30

数据提取

题目:取出第33行数据

难度:⭐⭐

答案

代码语言:javascript
复制
df.loc[33]

31

数据计算

题目:计算salary列的中位数

难度:⭐⭐

答案

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

32

数据可视化

题目:绘制薪资水平频率分布直方图

难度:⭐⭐⭐

期望输出

答案

代码语言:javascript
复制
df.salary.plot(kind='hist')

33

数据可视化

题目:绘制薪资水平密度曲线

难度:⭐⭐⭐

期望输出

答案

代码语言:javascript
复制
df.salary.plot(kind='kde',xlim=(0,80000))

34

数据删除

题目:删除最后一列categories

难度:⭐

答案

代码语言:javascript
复制
del df['categories']

35

数据处理

题目:将df的第一列与第二列合并为新的一列

难度:⭐⭐

答案

代码语言:javascript
复制
df['test'] = df['education']+df['createTime']

36

数据处理

题目:将education列与salary列合并为新的一列

难度:⭐⭐⭐

备注:salary为int类型,操作与35题有所不同

答案

代码语言:javascript
复制
df["test1"] = df["salary"].map(str) + df['education']

37

数据计算

题目:计算salary最大值与最小值之差

难度:⭐⭐⭐

答案

代码语言:javascript
复制
df[['salary']].apply(lambda x: x.max() - x.min())

38

数据处理

题目:将第一行与最后一行拼接

难度:⭐⭐

答案

代码语言:javascript
复制
pd.concat([df[:1], df[-2:-1]])

39

数据处理

题目:将第8行数据添加至末尾

难度:⭐⭐

答案

代码语言:javascript
复制
df.append(df.iloc[7])

40

数据查看

题目:查看每列的数据类型

难度:⭐

期望结果

代码语言:javascript
复制
createTime object
education object
salary int64
test object
test1 object
dtype: object

答案

代码语言:javascript
复制
df.dtypes

41

数据处理

题目:将createTime列设置为索引

难度:⭐⭐

答案

代码语言:javascript
复制
df.set_index("createTime")

42

数据创建

题目:生成一个和df长度相同的随机数dataframe

难度:⭐⭐

答案

代码语言:javascript
复制
df1 = pd.DataFrame(pd.Series(np.random.randint(1, 10, 135)))

43

数据处理

题目:将上一题生成的dataframe与df合并

难度:⭐⭐

答案

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

44

数据计算

题目:生成新的一列new为salary列减去之前生成随机数列

难度:⭐⭐

答案

代码语言:javascript
复制
df["new"] = df["salary"] - df[0]

45

缺失值处理

题目:检查数据中是否含有任何缺失值

难度:⭐⭐⭐

答案

代码语言:javascript
复制
df.isnull().values.any()

46

数据转换

题目:将salary列类型转换为浮点数

难度:⭐⭐⭐

答案

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

47

数据计算

题目:计算salary大于10000的次数

难度:⭐⭐

答案

代码语言:javascript
复制
len(df[df['salary']>10000])

48

数据统计

题目:查看每种学历出现的次数

难度:⭐⭐⭐

期望输出

代码语言:javascript
复制
本科 119
硕士 7
不限 5
大专 4
Name: education, dtype: int64

答案

代码语言:javascript
复制
df.education.value_counts()

49

数据查看

题目:查看education列共有几种学历

难度:⭐⭐

答案

代码语言:javascript
复制
df['education'].nunique()

50

数据提取

题目:提取salary与new列的和大于60000的最后3行

难度:⭐⭐⭐⭐

期望输出

答案

代码语言:javascript
复制
df1 = df[['salary','new']]
rowsums = df1.apply(np.sum, axis=1)
res = df.iloc[np.where(rowsums > 60000)[0][-3:], :]

以上就是Pandas进阶修炼120题|第二期的全部内容,数据可在后台回复pandas获取,完整的源码将会在稍晚些时候整理发布,如果对于某些题有其他解法欢迎点击下方小程序留言,我们下一期见~

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

本文分享自 Coder梁 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档