python中pandas进行数据分析与可视化(2)

1.创建数据源

在python中pandas进行数据分析与可视化(1)里,数据源是手动创建,数据量也只有几条,这在实际工作中其实是不太常见的,所以这次我们选择生成一组随机数,作为数据源

# 导入所有需要的库
import pandas as pd
from numpy import random
import matplotlib.pyplot as plt

# 婴儿名字的初始值
names = ['Bob','Jessica','Mary','John','Mel']
random.seed(500)
random_names = [names[random.randint(low=0,high=len(names))] for i in range(1000)]
# 显示前10个名字
print(random_names[:10])

这时就能看到已经生成了1000条婴儿名称
在这里插入图片描述
再给这个1000个名词生成随机的数值,表示每个名字出现了多少次,重复的名字则表示由不同的地方获取

births = [random.randint(low=0,high=1000) for i in range(1000)]
print(births[:10])

python中pandas进行数据分析与可视化(2)_第1张图片
之后可以用zip函数将这两个列表合并在一起,获取一个更容易理解的列表

BabyDataSet = list(zip(random_names,births))
print(BabyDataSet[:10])

在这里插入图片描述

2.数据源表格化

因为在数据分析的时候,往往会使用表格的形式进行处理,所以我们需要先把数据源转换成表格的形式,这里会用到DataFrame对象,我们可以把这个对象理解为包含了BabyDataset的内容而格式非常象一个 sql 表格或者 Excel 的数据表

df = pd.DataFrame(data = BabyDataSet, columns=['Names', 'Births'])
print(df)

python中pandas进行数据分析与可视化(2)_第2张图片

3.数据分析-分组求和

现在的数据源是每个名称都有多条记录,那就可以考虑将其汇总,看看每个名称总共有多少次数

# 对name求和计数
name = df.groupby('Names')
print(name.sum())

python中pandas进行数据分析与可视化(2)_第3张图片

4.数据可视化

在对名称分组求和之后,可以通过数据可视化的方式进行展示

name.sum()['Births'].plot.bar()
df.sort_values(by='Births', ascending=False)
plt.show()

python中pandas进行数据分析与可视化(2)_第4张图片

你可能感兴趣的:(python记录,python,pandas,数据分析)