Pandas 是一个用于数据操作和分析的 Python 库,广泛应用于数据科学和数据分析领域。Pandas 提供了强大的数据结构和函数,用于简化数据处理任务。以下是 Pandas 的主要概念和功能用法:

主要概念

  1. Series
  • 一维数组,与 NumPy 的一维数组类似,但具有轴标签(可以是数字、字符串等)。
  • 创建:pd.Series(data, index=index)
   import pandas as pd

   s = pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])
   print(s)
  1. DataFrame
  • 二维表格数据结构,有行和列标签。
  • 创建:pd.DataFrame(data, index=index, columns=columns)
   data = {'name': ['Alice', 'Bob', 'Charlie'], 'age': [25, 30, 35]}
   df = pd.DataFrame(data)
   print(df)

主要功能和用法

  1. 数据导入与导出
  • 从 CSV 文件导入:pd.read_csv('file.csv')
  • 导出到 CSV 文件:df.to_csv('file.csv', index=False)
   df = pd.read_csv('data.csv')
   df.to_csv('output.csv', index=False)
  1. 数据查看与检查
  • 查看前几行:df.head()
  • 查看数据维度:df.shape
  • 查看列名:df.columns
  • 基本统计信息:df.describe()
   print(df.head())
   print(df.shape)
   print(df.columns)
   print(df.describe())
  1. 数据选择与过滤
  • 按列选择:df['column_name']df.column_name
  • 按行选择:df.loc[index](按标签)或 df.iloc[index](按位置)
  • 条件筛选:df[df['column_name'] > value]
   age_series = df['age']
   row = df.loc[0]
   filtered_df = df[df['age'] > 30]
  1. 数据清洗
  • 处理缺失值:df.dropna()(删除缺失值)或 df.fillna(value)(填充缺失值)
  • 删除重复值:df.drop_duplicates()
  • 重命名列:df.rename(columns={'old_name': 'new_name'})
   df_clean = df.dropna()
   df_clean = df.fillna(0)
   df_clean = df.drop_duplicates()
   df_clean = df.rename(columns={'name': 'full_name'})
  1. 数据操作
  • 添加新列:df['new_column'] = value
  • 删除列:df.drop('column_name', axis=1)
  • 数据分组:df.groupby('column_name').mean()
  • 数据合并:pd.concat([df1, df2])pd.merge(df1, df2, on='key_column')
   df['new_age'] = df['age'] + 5
   df = df.drop('age', axis=1)
   grouped_df = df.groupby('name').mean()
   df_merged = pd.merge(df1, df2, on='id')
  1. 数据可视化
  • 使用 Pandas 内置的绘图功能(基于 Matplotlib):df.plot()
   import matplotlib.pyplot as plt

   df['age'].plot(kind='hist')
   plt.show()

示例代码

import pandas as pd

# 创建 DataFrame
data = {'name': ['Alice', 'Bob', 'Charlie'], 'age': [25, 30, 35]}
df = pd.DataFrame(data)

# 查看数据
print(df.head())

# 筛选数据
filtered_df = df[df['age'] > 30]

# 添加新列
df['age_next_year'] = df['age'] + 1

# 数据分组
grouped_df = df.groupby('name').mean()

# 输出到 CSV 文件
df.to_csv('output.csv', index=False)

print(filtered_df)
print(grouped_df)

Pandas 的这些功能使得数据处理和分析更加高效和简便。