Pandas??大熊猫??
不不不,今天我们要说的不是下面这个。
而是Python中用于处理数据的Pandas库。
Pandas库在数据分析中是非常常用的库,在数据预处理、缺失值填补、时间序列、可视化等方面都有应用。
接下来我就简单介绍Pandas的一些应用。
一、导入
导入Pandas库,并使用别名pd。
import pandas as pd
使用别名只是为了方便,把pandas的6个字母简化为2个。
二、读取文件
Pandas可以读取txt、csv、xls等结构的数据。读取csv数据可以使用pd.read_csv()函数,下面我们来试一下。
五号程序员根据自己去年的体重和体脂率制作了一份CSV文件(文件放在GZH中,回复“pandascsv”可获取),将文件放到指定文件夹后,打开Jupyter Notebook(忘记怎么用的点这里:http
s://zhuanlan.zhihu.com/p/196553329)输入下列代码:
import pandas as pd
result = pd.read_csv("E:\Pandascsv.csv") #每个人文件路径不同
print(result.head())
运行后就能看到前五个数据:
注意:虽然Python3已经解决了中文路径问题,但有时候还是会报错,所以尽量切换为英文路径。
三、基本操作
上面的数据集中包含月份、体重和体脂率3个特征,使用describe()方法可以直接查看每个数据的统计信息。
在第二个输入框中输入:
print(result.describe())
运行后可以看到每个特征的数据量(count)、均值(mean)、标准差(std)、四分位数(25%、50%、75%)、最小值(min)和最大值(max)已经打印在下方:
如果我们想单独看体重(weight)这一栏,可以用列名直接提取:
print(result["weight(kg)"].head(6))
如果想看3月份到6月份的数据,可以使用iloc[行, 列]方法:
print(result.iloc[2:6,:])
也能跳着看3、6、9月份的数据:
print(result.iloc[[2,5,8],:])
类似的切片方法还有loc、ix等,区别如下:
l loc:通过行标签索引行数据;
l iloc:通过行号索引行数据;
l ix:通过行标签或行号索引行数据(基于loc和iloc的混合)
使用方法大同小异,这里就不一一举例了。
对于数据可视化,可以使用Pandas的plot()函数,可以用于绘制直方图、散点图、线图等多种格式的图像。例如用体重和体脂率绘制散点图:
import matplotlib.pyplot as plt #引入Matplotlib库
result.plot(x="weight(kg)", y="BF(%)", kind="scatter", figsize=(8,6)) #设置图像类型和数据
plt.show()
可以看到一个呈线性关系的散点图,右键可以保存图片到本地。
除了导入文件数据外,也可以使用pd.DataFrame()函数来构造新的数组,例如:
import numpy as np
import pandas as pd
df = pd.DataFrame({'A':['No5','You','No5','You','No5','You'],
'B':['two','two','three','one','one','one'],
'C':np.random.randn(6)})
print(df)
上面使用字典构成了一个6X3的数组,字典中的key作为特征名,相应的value作为特征的取值。
转换后的数据有横竖两个标签,当数据量很大时我们操作起来就会很方便。
四
从上面的例子似乎还看不出Pandas的优势,关于Pandas的应用这里只是冰山一角