Pandas是什么(總結)
一、總結
一句話總結:
Pandas 的主要數據結構是 Series(一維數據)與 DataFrame(二維數據),這兩種數據結構足以處理金融、統計、社會科學、工程等領域里的大多數典型用例。
1、Pandas 適用於處理以下類型的數據?
*、與 SQL 或 Excel 表類似的,含異構列的表格數據;
*、有序和無序(非固定頻率)的時間序列數據;
*、帶行列標簽的矩陣數據,包括同構或異構型數據;
*、任意其它形式的觀測、統計數據集, 數據轉入 Pandas 數據結構時不必事先標記。
2、Pandas 的主要數據結構 Series(一維數據)與 DataFrame(二維數據)分別是什么?
1、Series:帶標簽的一維同構數組
2、DataFrame:帶標簽的,大小可變的,二維異構表格
3、pandas的強大之處?
-、數據清理:比如對缺失數據
-、數據處理:比如合並、切分等
-、IO處理:比如讀寫CSV、excel、數據庫等來源的文件
二、Pandas是什么(總結)
轉自或參考:
https://www.pypandas.cn/docs/getting_started/overview.html#%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84
https://pandas.pydata.org/about/index.html
pandas概述
Pandas 是 Python 的核心數據分析支持庫,提供了快速、靈活、明確的數據結構,旨在簡單、直觀地處理關系型、標記型數據。Pandas 的目標是成為 Python 數據分析實踐與實戰的必備高級工具,其長遠目標是成為最強大、最靈活、可以支持任何語言的開源數據分析工具。經過多年不懈的努力,Pandas 離這個目標已經越來越近了。
Pandas 適用於處理以下類型的數據:
- 與 SQL 或 Excel 表類似的,含異構列的表格數據;
- 有序和無序(非固定頻率)的時間序列數據;
- 帶行列標簽的矩陣數據,包括同構或異構型數據;
- 任意其它形式的觀測、統計數據集, 數據轉入 Pandas 數據結構時不必事先標記。
Pandas 的主要數據結構是 Series(一維數據)與 DataFrame(二維數據),這兩種數據結構足以處理金融、統計、社會科學、工程等領域里的大多數典型用例。對於 R 用戶,DataFrame 提供了比 R 語言 data.frame 更豐富的功能。Pandas 基於 NumPy 開發,可以與其它第三方科學計算支持庫完美集成。
Pandas 就像一把萬能瑞士軍刀,下面僅列出了它的部分優勢 :
- 處理浮點與非浮點數據里的缺失數據,表示為
NaN; - 大小可變:插入或刪除 DataFrame 等多維對象的列;
- 自動、顯式數據對齊:顯式地將對象與一組標簽對齊,也可以忽略標簽,在 Series、DataFrame 計算時自動與數據對齊;
- 強大、靈活的分組(group by)功能:拆分-應用-組合數據集,聚合、轉換數據;
- 把 Python 和 NumPy 數據結構里不規則、不同索引的數據輕松地轉換為 DataFrame 對象;
- 基於智能標簽,對大型數據集進行切片、花式索引、子集分解等操作;
- 直觀地合並(merge)、**連接(join)**數據集;
- 靈活地重塑(reshape)、**透視(pivot)**數據集;
- 軸支持結構化標簽:一個刻度支持多個標簽;
- 成熟的 IO 工具:讀取文本文件(CSV 等支持分隔符的文件)、Excel 文件、數據庫等來源的數據,利用超快的 HDF5 格式保存 / 加載數據;
- 時間序列:支持日期范圍生成、頻率轉換、移動窗口統計、移動窗口線性回歸、日期位移等時間序列功能。
這些功能主要是為了解決其它編程語言、科研環境的痛點。處理數據一般分為幾個階段:數據整理與清洗、數據分析與建模、數據可視化與制表,Pandas 是處理數據的理想工具。
其它說明:
- Pandas 速度很快。Pandas 的很多底層算法都用 Cython 優化過。然而,為了保持通用性,必然要犧牲一些性能,如果專注某一功能,完全可以開發出比 Pandas 更快的專用工具。
- Pandas 是 statsmodels 的依賴項,因此,Pandas 也是 Python 中統計計算生態系統的重要組成部分。
- Pandas 已廣泛應用於金融領域。
數據結構
| 維數 | 名稱 | 描述 |
|---|---|---|
| 1 | Series | 帶標簽的一維同構數組 |
| 2 | DataFrame | 帶標簽的,大小可變的,二維異構表格 |
為什么有多個數據結構?
Pandas 數據結構就像是低維數據的容器。比如,DataFrame 是 Series 的容器,Series 則是標量的容器。使用這種方式,可以在容器中以字典的形式插入或刪除對象。
此外,通用 API 函數的默認操作要顧及時間序列與截面數據集的方向。多維數組存儲二維或三維數據時,編寫函數要注意數據集的方向,這對用戶來說是一種負擔;如果不考慮 C 或 Fortran 中連續性對性能的影響,一般情況下,不同的軸在程序里其實沒有什么區別。Pandas 里,軸的概念主要是為了給數據賦予更直觀的語義,即用“更恰當”的方式表示數據集的方向。這樣做可以讓用戶編寫數據轉換函數時,少費點腦子。
處理 DataFrame 等表格數據時,index(行)或 columns(列)比 axis 0 和 axis 1 更直觀。用這種方式迭代 DataFrame 的列,代碼更易讀易懂:
for col in df.columns: series = df[col] # do something with series
大小可變與數據復制
Pandas 所有數據結構的值都是可變的,但數據結構的大小並非都是可變的,比如,Series 的長度不可改變,但 DataFrame 里就可以插入列。
Pandas 里,絕大多數方法都不改變原始的輸入數據,而是復制數據,生成新的對象。 一般來說,原始輸入數據不變更穩妥。
英文官網
Library Highlights
-
A fast and efficient DataFrame object for data manipulation with integrated indexing;
-
Tools for reading and writing data between in-memory data structures and different formats: CSV and text files, Microsoft Excel, SQL databases, and the fast HDF5 format;
-
Intelligent data alignment and integrated handling of missing data: gain automatic label-based alignment in computations and easily manipulate messy data into an orderly form;
-
Flexible reshaping and pivoting of data sets;
-
Intelligent label-based slicing, fancy indexing, and subsetting of large data sets;
-
Columns can be inserted and deleted from data structures for size mutability;
-
Aggregating or transforming data with a powerful group by engine allowing split-apply-combine operations on data sets;
-
High performance merging and joining of data sets;
-
Hierarchical axis indexing provides an intuitive way of working with high-dimensional data in a lower-dimensional data structure;
-
Time series-functionality: date range generation and frequency conversion, moving window statistics, date shifting and lagging. Even create domain-specific time offsets and join time series without losing data;
-
Highly optimized for performance, with critical code paths written in Cython or C.
-
Python with pandas is in use in a wide variety of academic and commercial domains, including Finance, Neuroscience, Economics, Statistics, Advertising, Web Analytics, and more.
Mission
pandas aims to be the fundamental high-level building block for doing practical, real world data analysis in Python. Additionally, it has the broader goal of becoming the most powerful and flexible open source data analysis / manipulation tool available in any language.
對應內容的google翻譯
圖書館亮點
-
快速高效的DataFrame對象,用於帶有集成索引的數據操作;
-
用於在內存數據結構和不同格式之間讀取和寫入數據的工具:CSV和文本文件,Microsoft Excel,SQL數據庫和快速HDF5格式;
-
智能數據對齊和丟失數據的集成處理:在計算中實現基於標簽的自動對齊,並輕松將雜亂數據處理為有序形式;
-
靈活地重塑和旋轉數據集;
-
基於智能標簽的切片,花式索引和 大數據集子集;
-
可以從數據結構中插入和刪除列,以實現大小可變性;
-
通過強大的分組引擎匯總或轉換數據,從而允許對數據集進行拆分應用合並操作;
-
高性能的數據集合並和聯接;
-
分層軸索引為在低維數據結構中處理高維數據提供了一種直觀的方法。
-
時間序列功能:日期范圍生成和頻率轉換,移動窗口統計信息,日期移動和滯后。甚至創建特定於域的時間偏移並加入時間序列,而不會丟失數據;
-
通過使用Cython或C 編寫的關鍵代碼路徑 對性能進行了高度優化。
-
帶有熊貓的 Python 在廣泛的學術和商業領域中得到使用,包括金融,神經科學,經濟學,統計學,廣告,Web分析等。
任務
pandas的目標是成為使用Python進行實際,現實世界數據分析的基本高級構建塊。此外,其更廣泛的目標是成為任何語言中可用的最強大,最靈活的開源數據分析/操縱工具。
