记录从准研一假期自学PYTHON的全过程day36(pandas统计索引)

103 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第26天,点击查看活动详情

也是暑假自学python的第36天

今天继续昨天的学习:

昨天学习了pandas的层次索引,今天开始学习pandas的统计计算和描述。

继续昨天学习的例子来看:

print(df_obj)
df_obj.loc[0,'b']=np.nan
print(df_obj)
print('-'*50)
print(df_obj.min(axis=0, skipna=True))
print('-'*50)
#观察数据分布的一种常用方法
print(df_obj.describe())
image.png

print(df_obj.describe())语句就可以看到对数据的一个详细的分析。

实例学习

使用一个实际的例子进行学习,我们将准备要进行分析的数据导入到本地目录之下:

使用pd.read_csv对其进行读取,打印出一些基本信息:

import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
file_path = "IMDB-Movie-Data.csv"
df = pd.read_csv(file_path) #不加路径默认当前路径
print(df.info())
print(df.describe())

输出的结果如下:

image.png

对数据进行分析:

获取数据:

# 获取平均评分
print(df["Rating"].mean())
print('-'*50)
# 导演的人数
print(len(set(df["Director"].tolist())))
print(len(df["Director"].unique()))
print('-'*50)
image.png

print(len(df["Director"].unique())):这种方法较为简单也容易理解,直接使用unique求len即可

绘制数据的直方图:

runtime_data = df["Runtime (Minutes)"].values

max_runtime = runtime_data.max()
min_runtime = runtime_data.min()

# 计算组数
print(max_runtime - min_runtime)
print('-'*50)
num_bin = (max_runtime - min_runtime) // 5

# 设置图形的大小
plt.figure(figsize=(20, 8), dpi=80)
# 第二个bins参数必须为int或sequence或str,bins代表划分为多少个单元
plt.hist(runtime_data, int(num_bin))

plt.xticks(range(min_runtime, max_runtime + 5,5))

plt.show()

绘制直方图,首先要确定最大值与最小值

max_runtime = runtime_data.max()

min_runtime = runtime_data.min()

按照每五分钟为一个组距来对数据进行划分

使用plt.hist(runtime_data, int(num_bin))来绘制直方图

plt.xticks(range(min_runtime, max_runtime + 5,5))来确定图像下面所标记的数据,xtick表示下面的标记,起始到终止,第三个参数为步长。

绘制的结果如下图所示:

image.png