CONTENT
- 基本数据结构
- Series
- DataFrame
- 数据读取与写入
- 读取 CSV 文件
- 写入 CSV 文件
- 数据清洗
- 处理缺失值
- 数据类型转换
- 数据操作
- 索引与切片
- 数据合并
- 数据分组与聚合
- 数据可视化
基本数据结构
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()