使用 Pandas 处理日期和时间
Python 数据分析和操作的核心部分是使用 Pandas 处理日期和时间。强大的库 Pandas 提供了处理和检查时间序列数据的有效方法。它提供了 DateTimeIndex,使索引 DataFrames 并对其执行基于时间的操作变得简单。用户可以通过将字符串或其他表示形式转换为 Pandas DateTime 对象来为其数据构建 DateTimeIndex,从而简化时间感知分析。该库支持重采样、时间膨胀和日期范围创建,使组合和处理基于时间的数据变得简单。此外,Pandas 支持管理时区,为大数据分析启用时间戳转换和翻译。
安装命令
在使用 Pandas 之前,您必须在计算机系统上安装它。使用 Python 的包管理器 pip 运行以下命令来执行此操作:
pip install pandas
Pandas 的功能
DataFrame:DataFrame 是一种模拟电子表格或 SQL 表的二维标记数据结构,是 Pandas 引入的一项新功能。它可以有效地管理行和列中的数据,并方便进行不同的数据操作。
Series:Series 是一个一维标记数组,具有类似于列表或 NumPy 数组的附加功能。 Series 是 DataFrames 的基本单元,可以存储各种数据类型。
数据对齐:即使数据来自多个来源,数据操作(如算术)也能正确执行,因为 Pandas 会根据标签自动对齐数据。
数据清理:Pandas 提供了多种方法来管理缺失数据,例如 dropna()(消除 NaN 值)和 fillna()(使用定义的技术填充缺失值)。
数据重塑:借助 pivot_table()、melt() 和 stack()/unstack() 方法,用户可以借助 Pandas 提供的灵活工具轻松地重塑数据。
分组和聚合:使用 Pandas 提供的 groupby() 方法,用户可以根据某些特定条件将数据分成几组条件,然后将聚合函数应用于每个组,例如总和、平均值、最大值等。
合并、连接和串联:通过merge()、join()和concat()等技术,Pandas可以无缝集成和合并来自许多来源的数据。
时间序列分析:Pandas提供了广泛的功能来处理时间序列数据,包括日期范围构建、基于时间的索引和以不同频率重新采样。
数据I/O:Pandas可以读取和写入许多不同格式的数据,例如CSV、Excel、SQL数据库等。
基于标签的索引:Pandas功能多样且用户友好,可以轻松地根据标签或条件对数据进行切片、选择和更新。
数据可视化:Pandas 本身并不管理数据可视化,但它可以轻松地与其他库(如 Matplotlib 和 Seaborn)交互,让用户使用 Pandas 数据制作有用的图表和图形。
使用 Pandas 的基本程序
创建 DataFrame
创建 DateTimeIndex 和重新采样
过滤数据
创建 DataFrame
基于 Python 的数据分析和操作的一个关键步骤是在 Pandas 中创建 DataFrame。一个名为 Pandas 的复杂库提供了一种称为 DataFrame 的二维标记数据结构,它与电子表格或 SQL 表相当。 Pandas 允许将数据分组为行和列,从而实现轻松的数据管理和分析。
算法
导入 Pandas 库。
准备您打算在 DataFrame 中使用的信息。字典、字典列表、列表列表或 NumPy 数组都是您的选择。
使用 pd.DataFrame() 构造函数生成 DataFrame。为构造函数提供数据以及任何可选选项,包括列名和索引。
您可以选择使用 index 参数设置索引,并使用 pd.DataFrame() 构造函数的 columns 参数设置列名。
DataFrame 现在可以用于编辑和数据分析。
示例
import pandas as pd data_dict = { 'Name': ['Rahul', 'Anjali', 'Siddharth'], 'Age': [15, 33, 51], 'City': ['Mumbai', 'Goa', 'Jammu'] } df1 = pd.DataFrame(data_dict) dataListOfDicts = [ {'Name': 'Komal', 'Age': 25, 'City': 'Pune'}, {'Name': 'Bulbul', 'Age': 30, 'City': 'Agra'}, {'Name': 'Aarush', 'Age': 35, 'City': 'Meerut'} ] df2 = pd.DataFrame(dataListOfDicts) data_list_of_lists = [ ['Anmol', 27, 'Hyderabad'], ['Tarun', 20, 'Mumbai'], ['Srijan', 31, 'Chandigarh'] ] df3 = pd.DataFrame(data_list_of_lists, columns=['Name', 'Age', 'City']) print("DataFrame 1:") print(df1) print("\nDataFrame 2:") print(df2) print("\nDataFrame 3:") print(df3)
输出
创建 DateTimeIndex 和重新采样
基于 Python 的数据分析和操作的一个关键步骤是在 Pandas 中创建 DataFrame。一个名为 Pandas 的复杂库提供了一种称为 DataFrame 的二维标记数据结构,它与电子表格或 SQL 表相当。 Pandas 允许将数据分组为行和列,从而实现轻松的数据管理和分析。
算法
导入 Pandas 库。
在 DataFrame 中准备数据,该 DataFrame 有一列用于日期或时间戳。
使用 pd.to_datetime() 将日期或时间戳列转换为 Pandas DateTimeIndex。
使用 set_index() 函数,将 DateTimeIndex 设置为 DataFrame 的索引。
使用 resample() 方法将数据重新采样为不同的频率后,您还可以使用聚合函数(如平均值、总和等)获取新频率的值。
示例
import pandas as pd data = { 'Date': ['2023-07-25', '2023-07-26', '2023-07-27', '2023-07-28', '2023-07-29'], 'Value': [10, 15, 8, 12, 20] } df = pd.DataFrame(data) df['Date'] = pd.to_datetime(df['Date']) df.set_index('Date', inplace=True) monthly_data = df.resample('M').mean() print(df) print("\nResampled Monthly Data:") print(monthly_data)
输出
过滤数据
Pandas 提供了基于布尔索引的强大数据过滤功能。用户可以通过构建布尔掩码并将条件应用于 DataFrame 列来快速选择满足过滤标准的行。数据分析师可以使用这种方法来集中精力于相关信息、调查趋势、发现模式并对特定数据子集进行额外研究。
算法
导入 Pandas 库。
例如,可以在 DataFrame 中或通过从 CSV 文件中读取数据来准备数据。
要根据某些要求过滤数据,请将布尔索引与条件结合起来。
将条件应用于一个或多个 DataFrame 列以创建布尔掩码。
要选择满足过滤要求的行,请使用布尔掩码。
示例
import pandas as pd data = { 'Name': ['Arushi', 'Shobhit', 'Tarun', 'Dishmeet', 'Evan'], 'Age': [25, 30, 35, 28, 40], 'City': ['Mumbai', 'Delhi', 'Goa', 'Bareilly', 'Agra'] } df = pd.DataFrame(data) filtered_df = df[df['Age'] > 30] print(filtered_df)
输出
结论
Python 的 Pandas 库简化了时间数据处理中时间和日期的处理。用户可以借助 Pandas 的 DateTimeIndex 和函数有效地执行基于时间的索引、重采样和时区管理。该库的灵活性使日期计算、过滤和时间序列显示更加容易。通过与其他 Python 工具的顺畅连接,可以改善数据的探索和操作。Pandas 对于处理和分析各种应用中的时间相关数据至关重要,从银行和经济学到天气预报和社会趋势分析。它使分析师能够获得深刻的知识。