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

1.创建数据源

matplotlib库是用于数据可视化,pandas则是用于数据分析,在导入这两个包之后,我们可以手工创建两个数据,其表示的是在某一年里,不同名称的新生儿数量,比如被叫做Bob的新生儿有968位

import matplotlib.pyplot as plt
import pandas as pd #导入pandas的常规做法

#创建数据 初始数据集: 婴儿名字和对应的出生数量
names = ['Bob','Jessica','Mary','John','Mel']
births = [968, 155, 77, 578, 973]

之后可以用zip函数将这两个列表合并在一起,获取一个更容易理解的列表

BabyDataSet = list(zip(names, births))
print(BabyDataSet)

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

2.数据源表格化

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

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

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

3.数据保存

此时我们可以将df里的表格数据存储为csv文件,这样可以进行文件共享,这里用到了indexheader两个参数,可以用来控制是否要导出表头和序号

#数据导出 两个参数分别用于决定是否要导出序号和表头
df.to_csv('births1880.csv', index=False, header=False)

这里如果不指定导出文件的路径,那就会默认导出到和当前这个python文件相同路径下
python中pandas进行数据分析与可视化(1)_第3张图片

4.数据读取

如果我们从其他人那里获取了一个csv文件,也同样可以通过pandas获取里面的数据

Location = r'./births1880.csv' #从 这个python文件 当前的位置读取 csv 文件
df = pd.read_csv(Location,names=['Names','Births'])
print(df)

同样的,如果不指定获取文件的路径,那也就是会在当前路径下去获取文件
python中pandas进行数据分析与可视化(1)_第4张图片

5.确认数据类型

因为这份数据是在某一年里,不同名称的新生儿数量,所以按道理来说,Births这个字段的值就不应该有小数,我们可以提前通过dtypes来看到每个字段的类型

# 查看每一列的数据类型
print(df.dtypes)

# 查看 Births 列的数据类型
print(df.Births.dtype)

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

6.数据分析-获取最大值

如果当前想要获取Births里的最大值,可以直接通过DataFrame对象里的max函数获取

print(df['Births'].max())

在这里插入图片描述
但这种方法只能获取最大的那个数值,没有办法知道对应的Names是什么,所以可以改用对Births排序的方法,再取第一条记录,就可以同时获取所有信息了

Sorted = df.sort_values(['Births'], ascending=False)
print(Sorted.head(1))

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

7.数据可视化

之前有写过一篇使用matplotlib绘制可视化图形的博客,这里对其稍作修改,就可以使用,如果对下面这段数据可视化的逻辑有不理解对地方,可以参考python数据分析-matplotlib绘制折线图

# 绘图
# df['Births'].plot()
df['Births'].plot.bar() #这里改用的条形图更直观
# Births 中的最大值
MaxValue = df['Births'].max()
# 找到对应的 Names 值
MaxName = df['Names'][df['Births'] == df['Births'].max()].values
# 准备要显示的文本
Text = str(MaxValue) + " - " + MaxName
# 将文本显示在图形中
plt.annotate(Text, xy=(1, MaxValue), xytext=(8, 0),
xycoords=('axes fraction', 'data'), textcoords='offset points')
print("The most popular name")
df[df['Births'] == df['Births'].max()]
plt.show()
print(df[df['Births'] == df['Births'].max()])

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

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