pandas经典练习题

pandas是Python的一个非常强大的数据分析库,它提供了高性能易用的数据类型,以及大量能使人们快速地处理数据的函数与方法。pandas的核心数据结构有两种,即一维数组的Series和二维表格型的DataFrame对象,DataFrame对象可以理解为一个由多个Series对象组成的字典,数据分析相关的所有事物都是围绕这两种对象进行的。
具体可以通过

pip install pandas

命令安装pandas扩展库
下面让我们走进pandas的练习吧!
需要注意的是,编写代码之前,首先需要导入相应的库模块,具体导入代码如下所示:

import pandas as pd
import numpy as np

同时,在创建Python脚本或软件包的时候,不要以pandas或numpy命名,否则系统会无法分辨到底要导入哪一个模块而报类似于下面的错误。
在这里插入图片描述

1.将下面的字典创建为DataFrame

data = {'grammar': ['Python', 'C', 'Java', 'GO', np.nan, 'SQL', 'PHP', 'Python'],
        'score': [1.0, 2.0, np.nan, 4.0, 5.0, 6.0, 7.0, 10.0]}
df = pd.DataFrame(data)
print(df)

运行打印结果如下所示:
在这里插入图片描述

2.提取含有字符串Python的行

result = df[df['grammar'] == 'Python']
print(result)

运行结果如下所示:
在这里插入图片描述

3.输出df的所有列名

print(df.columns)

运行结果如下所示:
在这里插入图片描述

4.修改第二列列名为popularity

# inplace=True 表示在原数据修改
df.rename(columns={'score': 'popularity'}, inplace=True)
print(df)

运行结果如下所示:
在这里插入图片描述

5.统计grammar列中每种编程语言出现的次数

print(df['grammar'].value_counts())

运行结果如下所示:
在这里插入图片描述

6.将空值用插值的方式填充

df['popularity'] = df['popularity'].fillna(df['popularity'].interpolate())
print(df)

运行结果如下所示:
在这里插入图片描述

7.提取popularity列中值大于3的行

result = df[df['popularity'] > 3]
print(result)

运行结果如下所示:
在这里插入图片描述

8.按照grammar列进行去除重复值

print(df.drop_duplicates('grammar', keep='first'))

注意,这里并未修改原数据,这里只是将删除重复grammar的DataFrame对象返回并输出。具体输出效果如下所示:
在这里插入图片描述

9.计算popularity列的平均值

print(df['popularity'].mean())
# 输出结果为 4.75

10.将grammar列转化为List

print(df['grammar'].tolist())

运行转换效果如下所示:
在这里插入图片描述

11将DataFrame保存为Excel

df.to_excel('test.xlsx')

运行结束后可以看见在Python文件的同级目录出现了一个test.xlsx文件。

12.查看数据行列数

print(df.shape)
# 输出为(8,2)

13.提取popularity列值大于3小于7的行

print(df[(df['popularity'] > 3) & (df['popularity'] < 7)])

运行结果如下所示:
在这里插入图片描述

14.交换两列位置

cols = df.columns[[1,0]]
df = df[cols]
print(df)

运行结果如下所示:
在这里插入图片描述

15.提取popularity列最大值所在的行

print(df[df['popularity'] == df['popularity'].max()])

运行效果如下所示:
在这里插入图片描述

16.查看最后5行数据

print(df.tail())

运行效果如下所示:
在这里插入图片描述
查看开始5行的函数是head(),有兴趣的小伙伴可以尝试一下。

17.删除最后一行数据

#df.drop([len(df)-1],inplace=True)
#print(df)
df.drop(index=(len(df)-1),inplace=True)
print(df)

运行结果如下所示:
在这里插入图片描述

18.添加一行数据[‘Perl’,6.6]

row = {'grammar': 'Perl','popularity': 6.6}
df = df.append(row,ignore_index=True)
print(df)

运行结果如下所示:
在这里插入图片描述

19.对数据按照"popularity"列值大小进行排序

df.sort_values('popularity', inplace=True, ascending=True)
print(df)

运行结果如下所示:
在这里插入图片描述

20.统计grammar列每个字符串的长度

df['grammar']=df['grammar'].fillna('R')
df['len_str']=df['grammar'].map(lambda x:len(x))
print(df)

运行结果如下所示:
在这里插入图片描述

  • 5
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

散一世繁华,颠半世琉璃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值