pandas库详解

发布于:2025-04-19 ⋅ 阅读:(24) ⋅ 点赞:(0)

基本数据结构

Series

Series 属于一维标记数组,由一组数据和对应的索引构成。

import pandas as pd
# 创建 Series
s = pd.Series([1, 3, 5, 7, 9])
print(s)

DataFrame

DataFrame 是二维表格型数据结构,每列可以是不同的数据类型。

import pandas as pd

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

该代码借助字典创建了一个简单的 DataFrame。

数据读取与写入

读取 CSV 文件

import pandas as pd

# 读取 CSV 文件
df = pd.read_csv('data.csv')
df.head()

写入 CSV 文件

import pandas as pd

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

# 写入 CSV 文件
df.to_csv('output.csv', index=False)

数据清洗

处理缺失值

import pandas as pd
import numpy as np

# 创建包含缺失值的 DataFrame
data = {
    'A': [1, np.nan, 3],
    'B': [4, 5, np.nan]
}
df = pd.DataFrame(data)

# 删除包含缺失值的行
df_dropna = df.dropna()

# 用 0 填充缺失值
df_fillna = df.fillna(0)

print("删除缺失值后的 DataFrame:")
print(df_dropna)
print("填充缺失值后的 DataFrame:")
print(df_fillna)

数据类型转换

import pandas as pd

# 创建 DataFrame
data = {
    'A': ['1', '2', '3']
}
df = pd.DataFrame(data)

# 将列 A 转换为整数类型
df['A'] = df['A'].astype(int)
print(df.dtypes)

数据操作

索引与切片

import pandas as pd

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

# 按标签索引选取数据
print(df.loc[0, 'Name'])

# 按位置索引选取数据
print(df.iloc[0, 1])

数据合并

import pandas as pd

# 创建两个 DataFrame
df1 = pd.DataFrame({
    'ID': [1, 2, 3],
    'Name': ['Alice', 'Bob', 'Charlie']
})
df2 = pd.DataFrame({
    'ID': [2, 3, 4],
    'Age': [25, 30, 35]
})

# 按 ID 列合并两个 DataFrame
merged_df = pd.merge(df1, df2, on='ID')
print(merged_df)

数据分组与聚合

import pandas as pd

# 创建 DataFrame
data = {
    'Category': ['A', 'B', 'A', 'B'],
    'Value': [10, 20, 30, 40]
}
df = pd.DataFrame(data)

# 按 Category 列分组并计算每组的平均值
grouped = df.groupby('Category')
mean_values = grouped.mean()
print(mean_values)

数据可视化

import pandas as pd
import matplotlib.pyplot as plt

# 创建 DataFrame
data = {
    'Year': [2010, 2011, 2012, 2013],
    'Sales': [100, 150, 200, 250]
}
df = pd.DataFrame(data)

# 绘制折线图
df.plot(x='Year', y='Sales', kind='line')
plt.show()

网站公告

今日签到

点亮在社区的每一天
去签到