亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Pandas如何安裝使用

發布時間:2021-11-30 15:25:43 來源:億速云 閱讀:217 作者:小新 欄目:開發技術

這篇文章主要介紹了Pandas如何安裝使用,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

1. 安裝

如果做數據分析用途建議使用Anaconda,自帶pandas numy 以及很多庫。

Anaconda 安裝地址:https://www.continuum.io/downloads

安裝之后可以在terminal 輸入 conda 開頭的命令(類似pip),例如list 查看已經安裝的包,以及進行常用的install update等動作。


2. Import

絕大部分時候pandas都被使用者import為pd,根據作者的描述其實pandas是panel data的縮寫(而不是熊貓)

import pandas as pd


3. DataFrame

DataFrame是Pandas用來處理數據最常見的格式,一張二維的表,有行,列和值。類似于一個數據庫里的table 或者excel中的worksheet。如果有一個DataFrame叫df, df.columns可以得到所有的列標簽,同理df.index可以得到所有的行標簽。


4. 讀取數據

4.1 從excel中讀取數據

raw = pd.read_excel('%s%s.xlsx' %path %filename, sheetname='Data', skiprows= 1)

數據會被讀取到一個叫raw的DataFrame中,sheetname可以指定讀某個工作表,skiprow可以跳過初始N行的數據。


4.2 從csv中讀取數據

raw = pd.read_csv('%s%s.csv' %path %filename)


5. 增刪改查

5.1 增刪列

新增列,位置在最后一列

raw['新列名'] = 'string'

在中間增列,使用 df.insert()

df.insert(位置,'列名',值)

例如,在raw df第二列(index不算一列)插入一列,名為city,值為source_data的 [city]列

raw.insert(1,'column_name',source_data['data1'])

刪除列

del raw['列名']


5.2 改列名

5.2.1 一次性改變所有的列名

cols = ['name_1', 'name_2', 'name_3']
raw= raw[cols]

5.2.2 修改某個列名
使用df.rename(), 注意如果df中有多個old_name列的話都會被一并重命名為new_name

df=df.rename(columns = {'old_name':'new_name'})


5.3 改index

把某列設為index,原index會被刪除

raw = raw.set_index('column_name')

reset_index(),新index是以0開始的遞增整數列,原index會變成一個新的列。

raw = raw.reset_index()

如果不需要原來的index中的值可以加drop = True:

raw = raw.reset_index(drop=True)


5.4 編輯值(計算值)

5.4.1 四則運算

raw['data1'] = raw['data1'] *100
raw['data2'] = (raw['data1']+raw['data3'])/raw['data4']
raw['total'] = raw.sum(axis=1)


5.5 查列

5.5.1 篩選某列包含某值(raw df中 GEO CODE為CN的所有數據)

raw = raw[raw['GEO_CODE']=='CN']

5.5.2 多條件篩選

raw = raw[(raw['GEO_CODE']=='CN')&(raw['METRIC']=='Conversion Rate')]

5.5.3 篩選多個列

required_key = ['User_ID','SEO visits','SEA visits','Conversion Rate']
raw = raw[raw['METRIC_KEY'].isin(required_key)]

5.6 去重

5.6.1 去重使用drop_duplicates(),主要有2個參數:
subset 需要去重的值
keep,在遇到重復值時保留第一個(keep = 'first')or最后一(keep = 'last')

df = df.drop_duplicates(subset = 'column_name', keep = 'last')

5.6.2 因為去重時,保留的值很簡單是取第一個或最后一個,所以需要搭配sort_values()來保證留下的值是你想要的。sort_values()默認是升序ascending,由小到大。

df = df.sort_values(by='column_name')
df = df.drop_duplicates(subset = 'column_name', keep = 'last')


6 Excel功能相關

6.1 Excel的數據透視表

pd.pivot_table()

主要有3個參數,index, columns,value, 以及aggfunc

  • index相當于行標簽

  • columns相當于列標簽

  • value相當于用來計算值,配合aggfunc來計算count/mean/average
    注意value不能使用index 和columns已經使用過的值,這點和excel不同。

pivot= pd.pivot_table(raw, values = 'Response ID', index= ['Country'], columns=['NPS category'], aggfunc=np.size)

aggfunc目前用過的有計數np.size 匯總np.sum 平均np.average np.mean 中位數np.median


6.2 DataFrame的融合 (vlookup or hookup)

因為excel的公式是在某個單元格中,而DataFrame一般是一次性處理行或列的數據,給某行/列根據其他行/列的數據引用賦值就相當于表格的融合。
主要用到2個方法:

  • pd.merge()

  • pd.concat()

詳情請看下節


6.3 pd.merge()

pd.merge()非常類似數據庫中join的操作,參數很豐富:

merged_df = pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=True, suffixes=('_x', '_y'), copy=True, indicator=False)

merge可以提供關系型數據庫中常用的幾種合并方式,空值會用NaN填充:
下面是幾個常用參數的詳解:
參數on

pd.merge(df1, df2, on = 'xxx') #on的參數用來確定2個表共同的column。

on在這里就相當于vlookup中lookup value的定位

參數merge

pd.merge(df1, df2, how= 'xxx') #how的參數用來確定 merge method 。

Merge method和SQL join的對應關系如下:

Merge methodSQL Join NameDescription
leftLEFT OUTER JOIN只使用左表的鍵(key)
rightRIGHT OUTER JOIN只使用右表的鍵
outerFULL OUTER JOIN使用兩表的并集的鍵
inerINNER JOIN使用兩表的交集的鍵

如果使用pd.merge實現vlookup時,正好二者的index就是共有值,只要
pd.merge(main_data,to_lookup_data,on ='left')就OK了

參數left_on right_on
to bu input
參數left_index right_index
to bu input


6.4 pd.concat()

如果兩個DataFrame column相同,二者上下拼接在一起 (增加數據行)

pd.concat([df1,df2])

如果兩個DataFrame index相同,二者左右拼接在一起 (增加數據列)

pd.concat([df1,df2], axis = 1)

如果有多個DataFrame, column相同的情況下:

dfs = [df1,df2,df3,df4]
result = pd.concat(dfs)

關于pd.merge()和pd.concat() 更多細節請參考官網:
http://pandas.pydata.org/pandas-docs/stable/merging.html


7. 數據輸出

假設現在有一個名為raw的DataFrame需要輸出到C盤根目錄

7.1 輸出到csv

DataFrame自帶to_csv()功能,注意如果有中文建議加encoding參數,如果不需要index可加 index= False 參數。

raw.to_csv('C:\File_name.csv', encoding = 'utf-8', index = False)

7.2 輸出到Excel

使用pandas自帶的 Excel Writer生成2010格式的excel,

from pandas import ExcelWriter
path = 'C:\'
writer = ExcelWriter('%sFile_name.xlsx' %path) #指定Excel文件名
raw.to_excel(writer, sheet_name = 'worksheet_name') #指定工作表名稱
writer.save()

7.3 輸出到數據庫

如果要存數據庫呢? RDBS和NOSQL

To be input..

8.使用datetime進行時間相關的操作

在python中用datetime也可以實現同excel中常用的日期函數一樣的功能

8.1 創建現在的時間點為對象

import datetime
now = datetime.datetime.now()
today = datetime.datetime.today()

8.2 時間的位移

start_date = dt.date(today.year-2,today.month-1,today.day)
end_date = dt.date(today.year,today.month-3,today.day+1)

如果月份/日期 超過限制會報錯
所以可能需要寫一個循環去輸出這些日期

date_list = [] while start_date < end_date: if start_date.month < 12:
        date_list.append(start_date.strftime('%Y-%m'))
        start_date = datetime.date(start_date.year,start_date.month +1,start_date.day) else:
        date_list.append(start_date.strftime('%Y-%m'))        
        start_date = datetime.date(start_date.year+1,start_date.month-11,start_date.day)
8.3 調整格式

如上面所示,使用strftime()可以調整時間的格式,可以調整的選項非常多,參考:
http://www.runoob.com/python/att-time-strftime.html

  • %y 兩位數的年份表示(00-99)

  • %Y 四位數的年份表示(000-9999)

  • %m 月份(01-12)

  • %d 月內中的一天(0-31)

  • %H 24小時制小時數(0-23)

  • %I 12小時制小時數(01-12)

  • %M 分鐘數(00=59)

  • %S 秒(00-59)

  • %a 本地簡化星期名稱

  • %A 本地完整星期名稱

  • %b 本地簡化的月份名稱

  • %B 本地完整的月份名稱

  • %c 本地相應的日期表示和時間表示

  • %j 年內的一天(001-366)

  • %p 本地A.M.或P.M.的等價符

  • %U 一年中的星期數(00-53)星期天為星期的開始

  • %w 星期(0-6),星期天為星期的開始

  • %W 一年中的星期數(00-53)星期一為星期的開始

  • %x 本地相應的日期表示

  • %X 本地相應的時間表示

  • %Z 當前時區的名稱

  • %% %號本身

8.4 周數的計算
8.5 工作日的計算

Excel中有個很方便的函數叫networkdays,給出起始日期,結束日期和holiday可以計算兩個日期間的工作天數。而pandas或者datetime對這個需求支持的不好,所以找到了這個module: business_calendar
https://pypi.python.org/pypi/business_calendar/

8.5.1 計算日期之間的工作日數量
例如,求16年2月1日~29日的工作日有幾天,已知條件:

  • 周一到周五都上班

  • 2月8日到12日為休假

date1 = datetime.datetime(2016,1,31)#注意如果寫2月1日,當天是不包含在內的,所以寫1月31日
date2 = datetime.datetime(2016,2,29) 
cal = Calendar(workdays =[MO, TU, WE, TH, FR], holidays=['2016-02-08','2016-02-09','2016-02-10','2016-02-11','2016-02-12'])
bsday = cal.busdaycount(date1, date2)
print (bsday)

感謝你能夠認真閱讀完這篇文章,希望小編分享的“Pandas如何安裝使用”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

伊吾县| 荃湾区| 任丘市| 井陉县| 桦甸市| 普陀区| 杭州市| 阿巴嘎旗| 东平县| 娄底市| 绩溪县| 古交市| 百色市| 若尔盖县| 南和县| 昭平县| 遵义县| 乌苏市| 定兴县| 铜陵市| 南昌市| 夏邑县| 高州市| 遂溪县| 潜江市| 江山市| 长春市| 昌平区| 中卫市| 柳江县| 蛟河市| 山丹县| 茌平县| 崇礼县| 永仁县| 波密县| 无棣县| 东城区| 济阳县| 昭苏县| 鞍山市|