#!/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 中的數據內容。