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

不常見的Pandas小竅門:我打賭一定有你不知道的

開發 后端
關于Pandas,你確定自己完全掌握了嘛?本文將分享一些少見但有用的Pandas技巧,它們能提升工作效率,讓生活更輕松。

本文轉載自公眾號“讀芯術”(ID:AI_Discovery)。

作為一名數據分析師或數據科學家,不了解Python中的Pandas庫是無論如何說不過去的,它已經成為Python中用來整理、清理數據的標準工具了。

然而,關于Pandas,你確定自己完全掌握了嘛?本文將分享一些少見但有用的Pandas技巧,它們能提升工作效率,讓生活更輕松。

[[346554]]

用剪貼板創建數據框

眾所周知,Pandas可以使用SQLAlchemy從CSV、JSON甚至直接從數據庫輕松讀取數據,但你知道Pandas還可以從所用操作系統的剪貼板讀取數據嗎?假設有一個包含多個數據表的Excel文件。現在,需要在Python中處理其中一個表的部分數據。你通常會怎么做?

  • 從數據表中復制需要在Python中處理的數據。
  • 將其粘貼到另一個數據表中。
  • 將當前工作表保存到CSV文件中。
  • 獲取新CSV文件的路徑。
  • 在Python中,使用pd.read_csv('path/to/csv/file')將文件讀入一個Pandas數據框架。

當然,其實有種更簡單的方法——pd.read_clipboard()。

  • 復制所需數據區域
  • 在Python中,使用pd.read_clipboard()

如上所示,如果只是想要將一些數據加載到Pandas中,那么無需CSV或Excel的分離文件。

在該函數中還有一些小竅門。例如,當遇到帶有日期格式的數據時,可能無法正確加載,如下所示:

訣竅就是,為Pandas注明哪一列是需要解析的日期格式。

  1. df = pd.read_clipboard(parse_dates=['dob']) 

使用測試方法生成虛擬數據

有時可能需要生成一些樣本數據幀,最常見的方法應該是使用NumPy生成一個具有隨機值的數組,然后從該數組生成數據幀。

如果數據需要具有一定的分布,比如正態分布,就必須使用這種方法。但是,大多數情況下,數據是否呈正態分布并不重要,只要有數據就好。在這種情況下,有一種更簡單的方法,即使用pandas.util.testing測試包生成樣本數據幀。

  1. pd.util.testing.makeDataFrame() 

數據幀的索引將使用隨機字符串生成,默認情況下將有4列30行。

如果需要數量相當的行和列,可以將testing.N定義為行數,并將testing.K定義為列數。

  1. pd.util.testing.N = 10 
  2. pd.util.testing.K = 5 
  3. pd.util.testing.makeDataFrame() 

將數據幀輸出至壓縮文件

[[346555]]

圖源:unsplash

數據幀可以輕松輸出至文件,例如以df.to_csv()、df.to_json()等形式。但有時,為節省磁盤空間或另作它用,需要壓縮文件。例如,作為一名數據工程師,為了將Pandas數據幀輸出到CSV文件中,并將其傳輸到遠程服務器,在發送前需要壓縮文件以節省空間和帶寬。

通常,一貫的解決方案是在所用調度工具(如Airflow或Oozie)中多操作一步,但Pandas可以直接輸出壓縮文件。所以,解決方案幾步就可完成,更加簡潔明了。

先使用第二個小竅門生成隨機數據幀吧:

  1. pd.util.testing.N = 100000 
  2. pd.util.testing.K = 5 
  3. df = pd.util.testing.makeDataFrame() 

在該例子中,僅需要一個數據框架,其中的值可完全不計。現在,將數據幀保存到一個CSV文件中,并檢查其大小。

  1. import osdf.to_csv('sample.csv')os.path.getsize('sample.csv') 

然后,可以試試將相同的數據幀輸出到壓縮文件中,并檢查文件的大小。

  1. df.to_csv('sample.csv.gz', compression='gzip')os.path.getsize('sample.csv.gz') 

可以看到,壓縮文件小于正常CSV文件的一半。

這可能不是一個好例子,因為該隨機數據幀中沒有任何重復值。在實踐中,如果存在分類值,壓縮率會非常高!順便一提,如你所想,Pandas可以直接將壓縮文件讀入數據幀,無須在文件系統中解壓它。

  1. df = pd.read_csv('sample.csv.gz', compression='gzip'index_col=0

gzip是優先選擇,因為它默認存在于大多數Linux系統中。Pandas還支持其它壓縮格式,比如“zip”和“bz2”。

多列獲取DateTime(時間日期)

[[346556]]

圖源:unsplash

在Pandas中,你一定用過pd.to_datetime()方法將某種字符串轉換為DateTime格式,這通常用于處理諸如%Y%m%d的格式字符串。然而,也有時可能會使用下方所示的數據框架作為原始數據。

  1. df = pd.DataFrame({ 
  2.     'year': np.arange(2000, 2012), 
  3.     'month': np.arange(1, 13), 
  4.     'day': np.arange(1, 13), 
  5.     'value': np.random.randn(12) 
  6. }) 

在數據框架中,將年、月、日作為單獨列分隔開來屢見不鮮,可以使用pd.to_dateframe()將其一步轉換為DateTime列。

  1. df['date'] = pd.to_datetime(df[['year', 'month', 'day']]) 

本文分享了一些關于Pandas Python庫的省時小竅門。簡而言之,人生苦短,Python值得。

 

責任編輯:趙寧寧 來源: 今日頭條
相關推薦

2025-03-17 00:45:00

JavaScriptAPI頁面

2024-10-21 17:46:54

前端開發

2025-05-21 14:08:47

2025-05-08 08:59:19

前端技巧

2011-08-10 23:28:49

打印機常見問題

2024-11-14 13:18:00

2020-04-27 10:34:23

HTTPDNSDNS網絡協議

2023-11-30 08:32:31

OpenFeign工具

2020-07-29 07:37:20

Git 修復項目

2020-06-12 09:20:33

前端Blob字符串

2020-07-28 08:26:34

WebSocket瀏覽器

2021-07-14 11:25:12

CSSPosition定位

2023-11-15 08:22:42

Java開發小技巧

2015-10-21 11:09:08

Xcode7調試神技

2010-08-23 09:56:09

Java性能監控

2011-09-15 17:10:41

2021-02-01 23:23:39

FiddlerCharlesWeb

2022-10-13 11:48:37

Web共享機制操作系統

2009-12-10 09:37:43

2023-12-13 08:28:07

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品国产精品国产专区不卡 | 色小姐综合网 | 亚洲高清在线观看 | 羞羞的视频网站 | 亚洲精品电影在线观看 | 欧美 中文字幕 | 午夜精品一区二区三区在线播放 | 国产高清免费在线 | 亚洲精品国产a久久久久久 中文字幕一区二区三区四区五区 | 午夜精品导航 | 日日干干 | 国产精品视频一区二区三区 | 国产清纯白嫩初高生在线播放视频 | 欧美日韩久久精品 | 国产成人精品一区二区三 | 盗摄精品av一区二区三区 | 久久99国产精品 | 久久精品网 | 日本免费在线看 | av一区二区三区四区 | 日韩在线视频一区二区三区 | 国产精品一区二区三级 | 欧美最猛黑人xxxⅹ 粉嫩一区二区三区四区公司1 | 欧美在线亚洲 | 97伦理电影| 欧美国产日韩精品 | 国产在视频一区二区三区吞精 | 亚洲精品1区 | 成人片免费看 | 伊人超碰 | 国产精品美女久久久久aⅴ国产馆 | 国产精品一区二区三级 | 先锋资源网 | 四虎成人免费视频 | 天天射天天干 | 亚洲精品一区在线观看 | 国产91视频免费 | 国产成人精品一区二区三区 | 91在线免费视频 | 免费的黄色片子 | 日韩久久中文字幕 |