1、DataFrame 和 Series 的基本概念
DataFrame 和 Series 是Pandas中两种最基本的数据结构,它们为数据分析和处理提供了强大的功能。
Series 是一种一维数组结构,类似于 Python 中的列表或者 NumPy 的数组。每个 Series 对象都有一个索引(Index),用于访问其中的元素。每个 Series 可以包含不同类型的对象(整数、字符串、浮点数等)。索引是自动分配的,但也可以自定义。支持向量化操作,类似于 NumPy。可以从字典、列表或其他序列类型创建。
DataFrame 是一个二维的、表格型的数据结构,可以看作是多个 Series 的集合,或者是一个共享同一索引的 Series 对象的字典。每列可以是不同的数据类型(数值型、字符串、布尔值等)。既有行索引也有列索引。可以从多种数据源创建,如字典、二维数组、一个 Series 的字典、另一个 DataFrame 等。支持复杂的数据操作,如数据合并、重塑、分组、排序、时间序列处理等。
可以将 DataFrame 看作是 Series 对象的集合。如选择 DataFrame 的一列,结果是一个 Series。
2、不同的数据源读取数据
Python Pandas 提供了多种方法来从不同数据源读取数据,包括 CSV、Excel、SQL 数据库、JSON、HTML、HDF5、Parquet、Stata、SAS、Google BigQuery、Feather、ORC 和 Clipboard等,如下,
import pandas as pd import sqlalchemy # 从 CSV 文件读取 df_csv = pd.read_csv('/cjavapy/file.csv') # 从 Excel 文件读取 # 需要安装 'openpyxl' 或 'xlrd' df_excel = pd.read_excel('/cjavapy/file.xlsx') # 从 SQL 数据库读取 # 需要安装 'sqlalchemy' engine = sqlalchemy.create_engine('database_url') df_sql = pd.read_sql("SELECT * FROM your_table", engine) # 从 JSON 文件读取 df_json = pd.read_json('/cjavapy/file.json') # 从 HTML 表格读取 # 这将返回一个包含所有表格的列表 df_html_list = pd.read_html('/cjavapy/file.html') # 选择第一个表格 df_html = df_html_list[0] # 打印读取到的 DataFrame 结构信息 print("CSV DataFrame:", df_csv.head()) print("Excel DataFrame:", df_excel.head()) print("SQL DataFrame:", df_sql.head()) print("JSON DataFrame:", df_json.head()) print("HTML DataFrame:", df_html.head())
3、查看和检查数据
可以使用 head() 和 tail() 方法分别查看数据集的前几行和最后几行,默认显示 5 行,info() 方法提供数据集的结构信息,包括每列的数据类型和非空值数量,而 describe() 方法则提供数据的统计摘要,如均值、标准差等,对于数值型列是默认的,但也可以包括所有列。
import pandas as pd # 假设 df 是一个已经加载的 DataFrame # 示例数据 data = { 'A': [1, 2, 3, 4, 5], 'B': [10, 20, 30, 40, 50], 'C': ['a', 'b', 'c', 'd', 'e'] } df = pd.DataFrame(data) # 查看前 5 行 print("显示前 5 行:") print(df.head()) # 查看后 3 行 print("\n显示后 3 行:") print(df.tail(3)) # 获取 DataFrame 的基本信息 print("\nDataFrame 的基本信息:") df.info() # 获取数值列的统计摘要 print("\n数值列的统计摘要:") print(df.describe()) # 获取包括所有列的统计摘要 print("\n包括所有列的统计摘要:") print(df.describe(include='all'))