pandas基礎分析1

#!/usr/bin/env python
# coding: utf-8

# # 創建series


dic={'a':1,'b':2,'c':3,'4':4,'5':5}


import pandas as pd

s1=pd.Series(dic)
s1


# 由數組創建
s2=pd.Series([54.74,190.9,173.14,1050.3,181.86,1139.49],
            index=['騰訊','阿里巴巴','蘋果','谷歌','Facebook','亞馬遜'],
            name='6家公司某一天的股價(美元)')

s2

s2.name

# 位置下標索引,下標從0開始
s2[0]


# In[9]:

s2.iloc[0]

# 根據索引
s2['騰訊']


#切片索引
s2['騰訊':'蘋果']

#布爾索引
s2[s2>200]

# 查看前面幾條
s2.head()

s2.head(2)

s2.tail(2)

#獲取描述統計信息
s2.describe()

# 向量化運算:向量相加
s3=pd.Series([1,2,3,4],index=['a','b','c','d'])

s4=pd.Series([10,20,30,40],index=['a','b','e','f'])

s5=s3+s4

s5

# 刪除缺失值
s5.dropna()

s3.drop(['b','c'])

# 將缺失值進行填充
s5=s3.add(s4,fill_value=0)


s5

# # series和array一維數組的聯繫與區別? 


pandas是建立在numpy的基礎上的,series和ndarray較相似,索引切片功能差別不大。但是Series比Array的功能更多,series相比於ndarray,是一個自帶索引index的數組,所以當只看series的值的時候,就是一個ndarray


#用字典進行創建:由字典創建(由數組/list組成的字典)

salesDict={
    '購藥時間':['2018-01-01 星期五','2018-01-02 星期六','2018-01-06 星期三'],
    '社保卡號':['001616528','001616528','0012602828'],
    '商品編碼':[236701,236701,236701],
    '商品名稱':['強力VC銀翹片','清熱解毒口服液','感康'],
    '銷售數量':[6,1,2],
    '應收金額':[82.8,28,16.8],
    '實收金額':[69,24.64,15]
}


#導入有序字典
from collections import OrderedDict


#定義一個有序字典
salesOrderDict=OrderedDict(salesDict)

#定義數據框:傳入字典,列名
salesDf=pd.DataFrame(salesOrderDict)


salesDf


#查詢元素:查詢第1行第2列的元素
salesDf.iloc[0,1]


#獲取行:獲取第1行,:代表所有列
salesDf.iloc[0,:]



#獲取列:獲取第1列,:代表所有行
salesDf.iloc[:,0]


#查詢數據:loc屬性用於根據索引獲取值:查詢元素 / 獲取行 / 獲取列
#查詢元素:查詢第1行第2列的元素


salesDf.loc[0,'商品名稱']


#獲取行:獲取第1行
salesDf.loc[0,:]


#獲取列:獲取商品名稱
salesDf.loc[:,'商品名稱']


salesDf['商品名稱']


# 切片索引


# 通過列表選擇數據
salesDf[['商品名稱','銷售數量']]  



#通過切片功能,獲取指定範圍的列
salesDf.loc[:,'購藥時間':'銷售數量']


# # DataFrame索引

# 查詢元素:查詢第一行第二列的元素
salesDf.iloc[0,1]


#獲取行:獲取第1行,:代表所有列
salesDf.iloc[0,:]


#獲取列:獲取第1列,:代表所有行
salesDf.iloc[:,0]



#查詢元素:查詢第1行第2列的元素
salesDf.loc[0,'商品名稱']



#獲取行:獲取第1行
salesDf.loc[0,:]


#獲取列:獲取“商品名稱”這一列
salesDf.loc[:,'商品名稱']


#商品名稱
salesDf['商品名稱']


#通過列表來選擇某幾列的數據
salesDf[['商品名稱','銷售數量']] 


# 通過切片功能,獲取指定範圍的列
salesDf.loc[:,'購藥時間':'銷售數量']



#通過條件篩選
querySer=salesDf.loc[:,'銷售數量']>1


salesDf.loc[querySer,:]


# # dataframe與array二維數組的聯繫與區別:

numpy數組中的每一個元素都屬於同一種數據類型,這在數值計算和科學計算中是非常有用的。但是它不利於我們表示類似於Excel中的內容,因爲Excel中每一列的數據類型可能都不一樣
DataFrame 也有索引的功能,這使得其很容易存儲常見的表格數據,DataFrame 的每一列數據可以是不同類型,這就方便表示 Excel 中的數據內容。





 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章