Python数据分析库Pandas

《《------------------------------------------------------------------------------------------------------》》

使用

Pandas 数据结构:一维数据结构   

创建字典格式 :  pd.Series({“今日销售量” : 10086,“今日成交金额”:“1000084”},time=‘2018.8.21’)    

创建数组格式 : pd.Series([10086,1000084],index=[\'今日销售量\',\'今日成交金额\'],time=\'2018.8.21\')

《《------------------------------------------------------------------------------------------------------》》

Dataframe :二维数据结构  是一个表格形的数据结构   ,“带标签的二维数组” ,带有(index) and (列标签)

使用 

data = {\'name\':[\'Jake\',\'Jeek\',\'Anmi\'],\'age\':[22,15,32],\'time\':[\'2019.2.1\',\'2019.3.1\',\'2019.4.2\']}

pd.DataFrame(data)   形成一个表格数据

创建的三种方法   :其他方法都不通用

1.data = {\'name\':[\'a\',\'b\',\'c\'],\'age\':[22,15,32],\'time\':[\'2019.2.1\',\'2019.3.1\',\'2019.4.2\']}

2. 第二种  设置两个一维数组  Series的方式

data={\'one\':pd.Series(np.random.rand(2)),\'two\':pd.Series(np.random.rand(3))}    不设置index的

data={\'one\':pd.Series(np.random.rand(2)),\'two\':pd.Series(np.random.rand(3)),index=[\'a\',\'b\',\'c\']}    设置 index的

3.   第三种  通过二维数组,指定index 和 colums

arr=np.arange(9).reshape(3,3)

data = pd.DataFrame(arr)

data = pd.DataFrame(data,index=[\'a\',\'b\',\'c\'],colums=[\'昨天\',‘今天’,‘明天’])

print(data)    

重新指定cloums列名:  pd.DataFrame(data,colums=[\'H5\',\'Json\',\'Dic\'])  

出现问题:

?如果指定后,列名比数据多,那么该列下面的数据  显示 NaN  

?如果指定后,列名少于数据,只会显示对应的列数据 

《《------------------------------------------------------------------------------------------------------》》

Pandas 索引+切片     中筛选数据

Series和Datafram索引的原理一样,我们以Dataframe的索引为主来学习

列索引:df[\'列名\'] (Series不存在列索引)

行索引:df.loc[]、df.iloc[]

选择列 / 选择行 / 切片 / 布尔判断

data[\'one\',\'abc\']      通过columns 选

data.loc[\'a\',\'b\',\'c\',\'d\',\'e\']   通过行   选       这个里面切片是包含最后一个的

data.iloc[:3]            通过切片 用数字表示,3之前的行  不包含3

data[data>50]     数据大于50的值

data[data[\'a\'] > 50]    a列  》 50   行数据

?选择出来后 按照 顺序放入 序列

data[data > 5].index().tolist()   转为数组 按照顺序 

《《------------------------------------------------------------------------------------------------------》》

Pandas 基本技巧 

df.head()   默认前5条数据,也可以在括号内指定数字       

df.tail()    默认后5条数据

df.T()    转置    index  互换  columns | 列变行,行变列

添加和修改   删除数据行

(添加操作)

这个二维数据表格  index 只有 5,那么就把  index[6]  赋值

(修改操作)

df[\'a\']  = 200   df[\'a\'][0] = 333  

(删除操作)

del df[\'a\']    删除 columns  【a】

df.drop(0)  删除行  删除index  行 

两个数据对齐合并  相加

就会 默认 对应行和列  对齐相加填充,如果没有的行和列,填充NaN 

DataFrame  数据排序  

random4 = np.random.rand(3,3)*100
      print(random4)
           data4 = pd.DataFrame(random4,columns=[\'a\',\'b\',\'c\'])
           data5 = data4.sort_values([\'b\'],ascending = True) #升序     False #降序   
           data5

DataFrame  索引排序

data7.sort_index()   #升序

data7.sort_index(inplace=True) #数据更新改变  

《《------------------------------------------------------------------------------------------------------》》

DataFrame  数据计算和统计基础

# np.nan :空值
   # .mean()计算均值

m2 = df.mean(axis=1)    1=行数值计算结果    0 = 列结果

# axis参数:默认为0,以列来计算,axis=1,以行来计算,这里就按照行来汇总了
   # 只统计数字列   

m3 = df.mean(skipna=False)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zggddj.html