Pandas库实操心得

库简介
1.时的一个数据分析包 , 该工具为解决数据分析任务而创建
2.纳入大量库和标准数据模型 , 提供高效的操作数据集所需的工具 。
3.提供大量能使我们快速便捷地处理数据的函数和方法 。
4.是字典形式 , 基于NumPy创建 , 让NumPy为中心的应用变得更加简单 。
创建操作
date = pd.date_range('20190903', periods=6)#创造时间序列columns_name = range(5)#range创造步长为一的数字序列Dataframe = pd.DataFrame(np.random.randn(6, 5), index=date, columns=columns_name)# print(np.arange(6).reshape(2,3))#arange是numpy里面带的产生默认步长为1的列表# reshape是将一个行向量变成一个NxM的矩阵# df1 = pd.DataFrame(np.ones((3,4))*0,columns=['a','b','c','d'])
【Pandas库实操心得】的属性操作

Pandas库实操心得

文章插图
# print(Dataframe.index)#获得Dataframe的index# print(Dataframe.columns)#获得Dataframe的列lable# print(Dataframe.dtypes)#查看每一列的类型# print(Dataframe.describe())#数字总结# print(Dataframe.T)#转置# print(Dataframe.values)#用二维元组得到Dataframe的body# print(Dataframe.sort_values(by=3,ascending=Ture))#按选定行进行排序values默认是从小到大进行排序 , 如果想获得值前五的数据可以[-5:]ascending为Ture时从小到大 , False时从大到小
对行和列的操作
# Author:Frankimport pandas as pddf = pd.read_excel(r'E:\2017B_data\2017\B\附件一:已结束项目任务数据.xls', index_col=0)#print(df)print(df.loc['A0001','任务gps 纬度']) # 根据行的index和列的label来切片# 还可以进行多列切片 print(df.loc['A0001',['任务gps 纬度','任务gps经度']]print(df.iloc[0,0]) # 根据行列的position来进行切片# 还可以进行多列切片 print(df.iloc[0,[0,1]]print('------->')print(df.loc['A0001':'A0003','任务gps 纬度':'任务gps经度'])#按照什么切片与上同 , 可以一次性切很多片print('------->')print(df.iloc[0:2,0:1])#按照什么切片与上同 , 可以一次性切很多片print('------->')print(df.at['A0001','任务gps经度'])#at只能单切片 它的功能完全可以由loc替代print(df.iat[0,1])#功能与at相同 不过是通过position进行切片print('------->')print(list(df.index))#获得index的列表print(df.columns)# print(Dataframe[Dataframe[3]>0])#条件筛选打印#ix 这种混合剪切已经被弃用#.loc .ioc 只加第一个参数如.loc([1,2]),.iloc([2:3]),则进行的是行选择# df[]只能进行行操作# print(Dataframe['20190906':'20190909'])#按行进行索引,用名称进行切片的时候左显右不显 , 单切片的时候可以两边一样# frame["b"].value_counts(sort=True)#默认返回排好序的Series , 计算Series各个值中出现的频率
对Nan数据的操作
# print(Dataframe.fillna(value=http://www.kingceram.com/post/2))#将nan的地方用value去替换# print(Dataframe.dropna(axis=0,how='any'))#0对行操作 , 1对列操作 , any存在就删掉 , all表示当全部是nan时删掉、#print (pd.isnull(Dataframe))#输出一个布尔矩阵 , nan的地方为Ture非nan地方为False
的合并操作
# df1 = pd.DataFrame(np.ones((3,4))*0,columns=['a','b','c','d'])# df2 = pd.DataFrame(np.ones((3,4))*1,columns=['a','b','c','d'])# df3 = pd.DataFrame(np.ones((3,4))*2,columns=['a','b','c','d'])# res = pd.concat([df1,df2,df3],axis=1,ignore_index=False)#合并Dataframe类型的数据 , axis为0按行合并 , 1按列合并 , ignore_index为Ture就重置合并后的行或列索引# res = df1.append(df2,ignore_index = True)#append和concat类似但是append只能行合并# print(res)# left = pd.DataFrame({'key1': ['K0', 'K0', 'K1', 'K2'],#'key2': ['K0', 'K1', 'K0', 'K1'],#'A': ['A0', 'A1', 'A2', 'A3'],#'B': ['B0', 'B1', 'B2', 'B3']})# right = pd.DataFrame({'key1': ['K0', 'K1', 'K1', 'K2'],#'key2': ['K0', 'K0', 'K0', 'K0'],#'C': ['C0', 'C1', 'C2', 'C3'],#'D': ['D0', 'D1', 'D2', 'D3']})# res = pd.merge(left,right,on=['key1','key2'],how='inner')#on表示以什么关键字去合并 , how inner(内联合并)/outer(外联合并)/left/right 表通过什么样的方式合并# #当使用outer合并时# res = pd.merge(left,right,on=['key1','key2'],how='outer',indicator='名称')#indicator的作用是显示数据合并的方式#下面介绍行合并# res = pd.merge(left,right,left_index=True,right_index=True,how='inner',indicator=True)#还有outer# print(res)