本文章的目的是记录pandas在使用中用到的知识
安装
pip install pandas
可以考虑使用清华源
-i https://mirrors.aliyun.com/pypi/simple/
pandas的基本数据结构
pandas中有两个主要的数据结构,分别是:Series(一维数组)和DataFrame(二维数组或表格)。
pandas 数据切片方法
pandas 数据切片方法 :[],loc,iloc,at,iat,ix
举个例子
import pandas as pd
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
df2 = pd.DataFrame(a, index=['row0', 'row1', 'row2'], columns=list('ABC'))
print(df2)
#选取某行含有特定数值的列
cols=[x for i,x in enumerate(df2.columns) if df2.iat[0,i]==3]
#利用enumerate对row0进行遍历,将含有数字3的列放入cols中
print(cols)
#df2=df2[cols] 选取含有特定数值的列
df2=df2.drop(cols,axis=1) #利用drop方法将含有特定数值的列删除
print(df2)
1 绘图
1.1 简单绘图实例
柱状图:bar() 或 barh()
直方图:hist()
箱状箱:box()
区域图:area()
散点图:scatter()
实例 折线图
import pandas as pd
import numpy as np
#创建包含时间序列的数据
df = pd.DataFrame(np.random.randn(8,4),index=pd.date_range('2/1/2020',periods=8), columns=list('ABCD'))
df.plot()
1.2 复杂绘图实例
实现柱状图、直方图、箱状箱、区域图、散点图绘制到一个plt上。
# 梵高函数
def van_gogh(my_data, save_path):
dict_ = {}
for i in range(len(my_data)):
data = my_data[i].data.values.ravel()
name = my_data[i].name
dict_[name] = data
data_pd = pd.DataFrame(dict_)
data_pd.plot(kind='line')
data_no_load = data_pd.iloc[:, 1:]
data_no_load.plot.area(stacked=False)
ax = data_pd.iloc[:, [0]].plot()
ax = data_no_load.plot(kind="bar", stacked=True, ax=ax)
# data_pd.to_csv(save_path+"/res.csv")
# plt.grid(True)
# plt.show()
plt.legend(loc='upper right')
fig = ax.get_figure()
fig.savefig(save_path+"/res.png", transparent=True)
plt.clf()
plt.close()
# print(data_pd)
2 保存数据
Series.to_html(save_path+'/res.html', encoding='utf_8_sig')
Series.to_excel(save_path+'/res.xlsx')