使用 Pandas 处理日期和时间

pythonserver side programmingprogramming更新于 2024/1/6 23:53:00

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 对于处理和分析各种应用中的时间相关数据至关重要,从银行和经济学到天气预报和社会趋势分析。它使分析师能够获得深刻的知识。


相关文章