成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

不容錯過的Pandas小技巧:萬能轉格式、輕松合并、壓縮數據

新聞 前端
數據分析,如何能錯過 Pandas ?,F在,數據科學家 Roman Orac 分享了他在工作中相見恨晚的 Pandas 使用技巧。

 本文經AI新媒體量子位(公眾號ID:QbitAI)授權轉載,轉載請聯系出處。

數據分析,如何能錯過 Pandas 。

現在,數據科學家 Roman Orac 分享了他在工作中相見恨晚的 Pandas 使用技巧。

了解了這些技巧,能讓你在學習、使用 Pandas 的時候更加高效。

[[319185]]

話不多說,一起學習一下~

Pandas實用技巧

用 Pandas 做數據分析,最大的亮點當屬 DataFrame。不過,在展示成果的時候,常常需要把 DataFrame 轉成另一種格式。

Pandas 在這一點上其實十分友好,只需添加一行代碼。

DataFrame 轉 HTML

如果你需要用 HTML 發送自動報告,那么 to_html 函數了解一下。

比如,我們先設定這樣一個 DataFrame:

  1. import numpy as np 
  2. import pandas as pd 
  3. import random 
  4.  
  5. n = 10 
  6. df = pd.DataFrame( 
  7.     { 
  8.         "col1": np.random.random_sample(n), 
  9.         "col2": np.random.random_sample(n), 
  10.         "col3": [[random.randint(010for _ in range(random.randint(35))] for _ in range(n)], 
  11.     } 

用上 to_html,就可以將表格轉入 html 文件:

  1. df_html = df.to_html() 
  2. with open(‘analysis.html’, ‘w’) as f: f.write(df_html) 
不容錯過的Pandas小技巧:萬能轉格式、輕松合并、壓縮數據

與之配套的,是 read_html 函數,可以將 HTML 轉回 DataFrame。

DataFrame 轉 LaTeX

如果你還沒用過 LaTeX 寫論文,強烈建議嘗試一下。

要把 DataFrame 值轉成 LaTeX 表格,也是一個函數就搞定了:

  1. df.to_latex() 
不容錯過的Pandas小技巧:萬能轉格式、輕松合并、壓縮數據

DataFrame 轉 Markdown

如果你想把代碼放到 GitHub 上,需要寫個 README。

這時候,你可能需要把 DataFrame 轉成 Markdown 格式。

Pandas 同樣為你考慮到了這一點:

  1. print(df.to_markdown()) 
不容錯過的Pandas小技巧:萬能轉格式、輕松合并、壓縮數據

注:這里還需要 tabulate 庫

DataFrame 轉 Excel

說到這里,給同學們提一個小問題:導師/老板/客戶要你提供 Excel 格式的數據,你該怎么做?

當然是——

  1. df.to_excel(‘analysis.xlsx’) 

需要注意的是,如果你沒有安裝過 xlwt 和 openpyxl 這兩個工具包,需要先安裝一下。

另外,跟 HTML 一樣,這里也有一個配套函數:read_excel,用來將excel數據導入pandas DataFrame。

DataFrame 轉字符串

轉成字符串,當然也沒問題:

  1. df.to_string() 

5個鮮為人知的Pandas技巧

此前,Roman Orac 還曾分享過 5 個他覺得十分好用,但大家可能沒有那么熟悉的 Pandas 技巧。

1、data_range

從外部 API 或數據庫獲取數據時,需要多次指定時間范圍。

Pandas 的 data_range 覆蓋了這一需求。

  1. import pandas as pd 
  2. date_from = “2019-01-01” 
  3. date_to = “2019-01-12” 
  4. date_range = pd.date_range(date_from, date_to, freq=”D”) 
  5. print(date_range) 

freq = “D”/“M”/“Y”,該函數就會分別返回按天、月、年遞增的日期。

不容錯過的Pandas小技巧:萬能轉格式、輕松合并、壓縮數據

2、合并數據

當你有一個名為left的DataFrame:

不容錯過的Pandas小技巧:萬能轉格式、輕松合并、壓縮數據

和名為right的DataFrame:

不容錯過的Pandas小技巧:萬能轉格式、輕松合并、壓縮數據

想通過關鍵字“key”把它們整合到一起:

不容錯過的Pandas小技巧:萬能轉格式、輕松合并、壓縮數據

實現的代碼是:

  1. df_merge = left.merge(right, on = ‘key’, how = ‘left’, indicator = True) 

3、最近合并(Nearest merge)

在處理股票或者加密貨幣這樣的財務數據時,價格會隨著實際交易變化。

針對這樣的數據,Pandas提供了一個好用的功能,merge_asof

該功能可以通過最近的key(比如時間戳)合并DataFrame。

舉個例子,你有一個存儲報價信息的DataFrame。

不容錯過的Pandas小技巧:萬能轉格式、輕松合并、壓縮數據

還有一個存儲交易信息的DataFrame。

不容錯過的Pandas小技巧:萬能轉格式、輕松合并、壓縮數據

現在,你需要把兩個DataFrame中對應的信息合并起來。

最新報價和交易之間可能有10毫秒的延遲,或者沒有報價,在進行合并時,就可以用上 merge_asof。

  1. pd.merge_asof(trades, quotes, on=”timestamp”, by=’ticker’, tolerance=pd.Timedelta(‘10ms’), direction=‘backward’) 
不容錯過的Pandas小技巧:萬能轉格式、輕松合并、壓縮數據

4、創建Excel報告

在Pandas中,可以直接用DataFrame創建Excel報告。

  1. import numpy as np 
  2. import pandas as pd 
  3.  
  4. df = pd.DataFrame(np.array([[123], [456], [789]]), columns=["a""b""c"]) 
  5.  
  6. report_name = 'example_report.xlsx' 
  7. sheet_name = 'Sheet1' 
  8. writer = pd.ExcelWriter(report_name, engine='xlsxwriter'
  9. df.to_excel(writer, sheet_name=sheet_name, index=False) 

不只是數據,還可以添加圖表。

  1. # define the workbook 
  2. workbook = writer.book 
  3. worksheet = writer.sheets[sheet_name] 
  4. # create a chart line object 
  5. chart = workbook.add_chart({'type''line'}) 
  6. # configure the series of the chart from the spreadsheet 
  7. # using a list of values instead of category/value formulas: 
  8. #     [sheetname, first_row, first_col, last_row, last_col] 
  9. chart.add_series({ 
  10.     'categories': [sheet_name, 1030], 
  11.     'values':     [sheet_name, 1131], 
  12. }) 
  13. # configure the chart axes 
  14. chart.set_x_axis({'name''Index''position_axis''on_tick'}) 
  15. chart.set_y_axis({'name''Value''major_gridlines': {'visible': False}}) 
  16. # place the chart on the worksheet 
  17. worksheet.insert_chart('E2', chart) 
  18. # output the excel file 
  19. writer.save() 

注:這里需要 XlsxWriter 庫

不容錯過的Pandas小技巧:萬能轉格式、輕松合并、壓縮數據

5、節省磁盤空間

Pandas在保存數據集時,可以對其進行壓縮,其后以壓縮格式進行讀取。

先搞一個 300MB 的 DataFrame,把它存成 csv。

  1. df = pd.DataFrame(pd.np.random.randn(50000,300)) 
  2. df.to_csv(‘random_data.csv’, index=False) 

壓縮一下試試:

  1. df.to_csv(‘random_data.gz’, compression=’gzip’, index=False) 

文件就變成了136MB。

不容錯過的Pandas小技巧:萬能轉格式、輕松合并、壓縮數據

gzip壓縮文件可以直接讀?。?/p>

  1. df = pd.read_csv(‘random_data.gz’) 

這一份Pandas技巧筆記,暫且說到這里。各位同學都做好筆記了嗎?

Talk is cheap, show me the code。學會了,就用起來吧

責任編輯:張燕妮 來源: 量子位
相關推薦

2011-03-01 09:17:34

Linux命令行

2019-08-09 18:08:13

程序員技能開發者

2024-01-31 11:55:16

數據分析數據計算收支

2016-02-29 15:00:48

RSA/信息安全

2013-10-31 13:30:36

設計專題

2023-08-03 07:44:09

MSBuild.NET

2015-09-17 17:37:57

工具程序開源

2023-06-29 17:53:00

VSCode插件程序

2014-07-10 10:56:21

jQuery

2022-09-22 16:17:12

css編程語言開發

2019-10-29 09:00:00

AIOps人工智能

2018-08-01 14:57:57

數據科學機器學習社區

2016-09-21 15:31:24

數據 峰會

2013-08-19 10:45:42

華為HCC大會HCC2013華為

2020-05-08 09:13:48

前端開發

2019-07-04 08:00:00

MySQL存儲開發

2014-08-26 10:38:23

AppAndroid Wea應用

2020-08-05 10:13:14

JavaScript開發

2020-01-14 10:17:13

深度學習人生第一份工作人工智能

2024-01-18 00:00:00

開發框架Port
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 北条麻妃99精品青青久久 | 国产精品99久久久久久大便 | 欧美韩一区二区三区 | 国产激情视频网站 | 亚洲国产精品一区二区久久 | 国产精品一区在线观看 | 成人在线视频免费看 | 午夜av一区二区 | 韩日在线视频 | 中文无码日韩欧 | 精品国产乱码久久久久久闺蜜 | 一区二区在线免费观看视频 | 色吊丝2288sds中文字幕 | 午夜看电影在线观看 | 日韩一区二区在线播放 | 国产激情一区二区三区 | 国产欧美性成人精品午夜 | 日韩av第一页 | 国产91精品久久久久久久网曝门 | 中文字幕 欧美 日韩 | www狠狠爱com | 最新中文字幕一区 | 日本欧美在线视频 | 欧美日韩国产一区二区 | 国产精品视频免费看 | 国产日韩一区 | 精品久久久久久久 | 俺去俺来也www色官网cms | 天堂av中文 | 亚洲v日韩v综合v精品v | 超碰免费在线 | 久久久久国产成人精品亚洲午夜 | 91素人 | 欧美一区永久视频免费观看 | 欧美日韩精品影院 | 免费观看色| 91在线精品一区二区 | 日韩精品久久一区二区三区 | 久久91精品久久久久久9鸭 | 丝袜 亚洲 欧美 日韩 综合 | 日韩三区在线 |