练习题
DataFrame的简单应用
![](https://img-blog.csdnimg.cn/20210127111102897.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L01hUmluMDcwOQ==,size_16,color_FFFFFF,t_70#pic_center)
练习1
代码
import pandas as pd
# Exercise 1
# 读取 catNames2.csv 文件,完成需求如下:
cat_data_df = pd.read_csv("catNames2.csv") # 用pandas库读取文件 数据文件和代码在同一个文件夹里面
# • 找到所有的使用次数超过800的猫的名字
counts = cat_data_df[cat_data_df["Count_AnimalName"] > 800] # 利用布尔索引先找出大于800的数据
sorted_counts = counts.sort_values(by="Count_AnimalName", ascending=False)
print("所有的使用次数超过800的猫的名字:")
print(sorted_counts) # 如果不想看到次数 可以输出sorted_counts["Row_Labels"]
# • 获取使用次数最高的名字
sorted_data = cat_data_df.sort_values(by="Count_AnimalName", ascending=False) # 将数据按降序排列好
max_counts = sorted_data[:1] # 利用索引取出第一行 因为是要获得使用次数最高的名字 即为排序后的数据的第一行
print("使用次数最高的名字:")
print(max_counts)
效果图
![](https://img-blog.csdnimg.cn/20210127111409296.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L01hUmluMDcwOQ==,size_16,color_FFFFFF,t_70#pic_center)
练习2
代码
import pandas as pd
# Exercise 2
# 读取 五粮液2020.xlsx 数据,指定 索引为0列 为 行索引
wly_data = pd.read_excel("五粮液2020.xlsx", index_col=0) # 利用pandas库读取文件 数据文件和代码在同一个文件夹里面
# 查看 该数据的基本信息
print("数据的基本信息:")
print(wly_data.info()) # 利用info()
print()
# 计算每一天各指标的差异值
print("每一天各指标的差异值:")
print(wly_data.diff()) # 利用diff()
print()
# 计算其 pre_close 的增长率
print("pre_close 的增长率:")
print(wly_data["pre_close"].pct_change()) # 利用pct_change()
print()
# 将 pre_close 的增长率添加至 wly_data 数据中
print("将 pre_close 的增长率(命名为pct_change)添加至 wly_data 数据中")
wly_data["pct_change"] = wly_data["pre_close"].pct_change() # DataFrame新增列
print(wly_data)
print()
# 将 pct_change 该列 呈现的 NaN 用0填充
wly_data["pct_change"].fillna(0, inplace=True) # 选中pct_change这一列后 利用fillna()函数对数据进行操作,并且inplace=True对原数据操作
print()
# 查看 pre_close 与 pct_change 的相关性
print("pre_close 与 pct_change 的相关性:")
print(wly_data["pre_close"].corr(wly_data["pct_change"])) # 利用corr()
print()
# 将 pct_change 这列乘以100 保留两位小数 成为百分比
print("修改后的pct_change为:")
func = lambda x: "%.2f%%" % (x * 100) # 定义匿名函数func
wly_data["pct_change"] = wly_data["pct_change"].apply(func) # 利用apply()对 pct_change 这一列进行修改
print(wly_data["pct_change"])
效果图
-
基本信息:
-
差异值:
-
增长率:
-
添加pct_change这一列
-
相关性:
-
pct_change修改为百分数的形式
小结
- 对DataFrame的数据进行操作时,一定要区分是操作列还是行。