1、pandas中对齐运算
import numpy as np
import pandas as pd
ser_obj1 = pd.Series(range(10,20),index=(range(10)))
ser_obj2 = pd.Series(range(10,15),index=(range(5)))
print(ser_obj1)
print(ser_obj2)
#直接调用add函数将两个Series对象进行相加,未对齐的数据补充为NAN
print(ser_obj1.add(ser_obj2))
#fill_value 参数将Series对象未对齐数据,统一制定为0
print(ser_obj1.add(ser_obj2,fill_value = 0))
#DataFrame
df_obj1 = pd.DataFrame(np.ones((2,2)),columns=['a','b'])
df_obj2 = pd.DataFrame(np.ones((3,3)),columns=['a','b','c'])
print(df_obj1)
print(df_obj2)
# print(df_obj1.add(df_obj2))
print(df_obj1.add(df_obj2,fill_value = 0))
#sub 相减 div 相除 mul 相乘
2、pandas中层级索引以及unstack函数
import numpy as np
import pandas as pd
#给Series创建两层索引,外层索引为字母,内层索引设置为数字
ser_obj = pd.Series(np.random.randn(12),
index=[list("abcdefghijkf"),list(range(5,17)),list(range(-24,-12))])
print(ser_obj)
#选定外层
print(ser_obj['b'])
#选定内层
print(ser_obj[:,10])
#选定最内层
print(ser_obj[:,:,-22])
print(ser_obj["f",10,-19])#所有行索引
#交换分层 swaplevel() 和最内层数据进行交换
#默认两个内层之间交换
print(ser_obj.swaplevel())
#设置参数为0,最外层和最内层的索引产生交换
print(ser_obj.swaplevel(0))
#设置参数为1,内层索引交换
print(ser_obj.swaplevel(1))
#unstack() 将Series对象重构为DataFrame对象
ser_obj2 = pd.Series(np.random.randn(12),index=[
['a']*3+['b']*3+['c']*3+['d']*3,
[0,1,2,0,1,2,0,1,2,0,1,2]
])
print(ser_obj2)
df_obj = ser_obj2.unstack(0)
print(df_obj)
3、Matplotlib进行数据分析
import matplotlib.pyplot as plt
import numpy as np
#线性函数
plt.plot([1,2,3,4])
plt.show()
#显示单个数据点
plt.plot([1,2,3,4],[1,4,8,16])
plt.show()
#加入标题
plt.axis([0,10,0,30])
plt.title("my first plot")
plt.plot([1,2,3,4],[1,4,8,16],"ro")
plt.show()
#改变线条粗细
plt.plot([1,2,3,4,4,5,6,7,8,12,3,4],linewidth = 3.0)
plt.show()
#设置x轴和y轴的标签
plt.axis([0,5,0,20])
plt.title("my second plot")
plt.xlabel("Counting")
plt.ylabel("Square balues")
plt.plot([1,2,3,4],[1,4,9,16],"ro")