Pandas 是 Python 中用于数据操作和分析的强大工具。以下教程将涵盖 DataFrame 的常用函数和用法,帮助你快速上手。
1. 创建 DataFrame
1.1 使用字典创建 DataFrame
python
import pandas as pd
# 使用字典创建 DataFrame
data = {
'姓名': ['John', 'Alice', 'Bob'],
'年龄': [28, 24, 22],
'城市': ['纽约', '旧金山', '洛杉矶']
}
df = pd.DataFrame(data)
print(df)
输出结果:
text
姓名 年龄 城市
0 John 28 纽约
1 Alice 24 旧金山
2 Bob 22 洛杉矶
1.2 使用列表创建 DataFrame
python
# 使用列表创建 DataFrame
data_list = [
['John', 28, '纽约'],
['Alice', 24, '旧金山'],
['Bob', 22, '洛杉矶']
]
df_list = pd.DataFrame(data_list, columns=['姓名', '年龄', '城市'])
print(df_list)
输出结果与上述相同。
1.3 使用 NumPy 数组创建 DataFrame
python
import numpy as np
# 使用 NumPy 数组创建 DataFrame
array = np.array([
['John', 28, '纽约'],
['Alice', 24, '旧金山'],
['Bob', 22, '洛杉矶']
])
df_array = pd.DataFrame(array, columns=['姓名', '年龄', '城市'])
print(df_array)
输出结果与上述相同。
2. 访问和操作数据
2.1 访问行和列
-
访问行 :使用
.loc[]
或.iloc[]
。.loc[]
根据标签访问。.iloc[]
根据位置访问。
python
# 访问第一行
print(df.loc[0])
# 访问第一列
print(df['姓名'])
2.2 添加和删除列
- 添加列:直接赋值给新列名。
- 删除列 :使用
.drop()
方法。
python
# 添加新列
df['国家'] = '美国'
# 删除 '年龄' 列
df = df.drop('年龄', axis=1)
2.3 过滤数据
使用条件语句过滤数据。
python
# 过滤年龄大于 25 的行(注意:此时年龄列已被删除)
# df['年龄'] = [28, 24, 22] # 临时恢复年龄列以演示过滤
# filtered_df = df[df['年龄'] > 25]
3. 合并和连接 DataFrame
3.1 垂直合并
使用 .concat()
方法。
python
df1 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})
df2 = pd.DataFrame({'A': [5, 6], 'B': [7, 8]})
combined_df = pd.concat([df1, df2])
print(combined_df)
输出结果:
css
text
A B
0 1 3
1 2 4
0 5 7
1 6 8
3.2 基于共同列的合并
使用 .merge()
方法。
python
df1 = pd.DataFrame({'ID': [1, 2], '姓名': ['John', 'Alice']})
df2 = pd.DataFrame({'ID': [1, 2], '年龄': [28, 24]})
merged_df = pd.merge(df1, df2, on='ID')
print(merged_df)
输出结果:
text
ID 姓名 年龄
0 1 John 28
1 2 Alice 24
4. 应用自定义函数
使用 .apply()
方法应用自定义函数。
python
def triple_value(x):
return x * 3
# 将 '年龄' 列的值乘以 3(注意:此时年龄列已被删除)
# df['年龄'] = [28, 24, 22] # 临时恢复年龄列以演示
# df['三倍年龄'] = df['年龄'].apply(triple_value)
5. 分组和聚合
使用 .groupby()
方法分组数据,然后应用聚合函数。
python
# 按 '城市' 分组,计算每组的平均年龄(注意:此时年龄列已被删除)
# df['年龄'] = [28, 24, 22] # 临时恢复年龄列以演示
# grouped_df = df.groupby('城市')['年龄'].mean()
6. 处理缺失值
使用 .fillna()
或 .dropna()
方法处理缺失值。
python
# 用平均值填充缺失值(注意:此时年龄列已被删除)
# df['年龄'] = [28, 24, None] # 临时添加缺失值以演示
# df['年龄'].fillna(df['年龄'].mean(), inplace=True)
7. 数据转换
使用 .pivot_table()
或 .melt()
方法转换数据格式。
python
# 将宽格式转换为长格式
df_long = pd.melt(df, id_vars=['姓名'], value_vars=['年龄', '城市'])
# 注意:此处需要恢复年龄列以演示
这些函数和用法为你提供了一个基础的框架,以便在 Pandas 中高效地处理和分析数据。