pd.DataFrame
是 Pandas 库中的一个类,用于创建和操作数据表格。它类似于电子表格或 SQL 表格,提供了强大的数据操作和分析功能。
pd.DataFrame
构造函数
pd.DataFrame(data=None, index=None, columns=None, dtype=None, copy=False)
data
: 可以是各种类型的数据结构,如字典、列表、NumPy 数组、Pandas Series、另一个 DataFrame 等。它是构造 DataFrame 的主要数据源。index
: 行标签,默认为 RangeIndex (0, 1, 2, ..., n)。可以传入一个列表或 NumPy 数组来指定行标签。columns
: 列标签,默认为从数据中推断的标签。可以传入一个列表或 NumPy 数组来指定列标签。dtype
: 每列的类型,可选。如果没有指定,Pandas 会自动推断。copy
: 默认为 False。如果为 True,则复制数据。
示例
1. 从字典创建
import pandas as pd
# 从字典创建 DataFrame
data = {
'name': ['Alice', 'Bob', 'Charlie'],
'age': [25, 30, 35],
'city': ['New York', 'Los Angeles', 'Chicago']
}
df = pd.DataFrame(data)
print(df)
"""
##输出
name age city
0 Alice 25 New York
1 Bob 30 Los Angeles
2 Charlie 35 Chicago
"""
2. 从列表创建
data = [
['Alice', 25, 'New York'],
['Bob', 30, 'Los Angeles'],
['Charlie', 35, 'Chicago']
]
df = pd.DataFrame(data, columns=['name', 'age', 'city'])
print(df)
"""
#输出
name age city
0 Alice 25 New York
1 Bob 30 Los Angeles
2 Charlie 35 Chicago
"""
3. 从 NumPy 数组创建
import numpy as np
data = np.array([
['Alice', 25, 'New York'],
['Bob', 30, 'Los Angeles'],
['Charlie', 35, 'Chicago']
])
df = pd.DataFrame(data, columns=['name', 'age', 'city'])
print(df)
"""
#输出
name age city
0 Alice 25 New York
1 Bob 30 Los Angeles
2 Charlie 35 Chicago
"""
常见操作
1. 查看数据
# 查看前几行
print(df.head())
# 查看数据信息
print(df.info())
# 查看描述性统计
print(df.describe())
2. 选择数据
# 选择一列
print(df['name'])
# 选择多列
print(df[['name', 'city']])
# 选择行
print(df.loc[0]) # 按标签选择
print(df.iloc[0]) # 按位置选择
3. 筛选数据
# 根据条件筛选
print(df[df['age'] > 30])
4. 添加和删除列
# 添加新列
df['country'] = 'USA'
print(df)
# 删除列
df.drop(columns=['country'], inplace=True)
print(df)
5. 处理缺失值
# 检查缺失值
print(df.isnull().sum())
# 填充缺失值
df.fillna(0, inplace=True)
# 删除缺失值
df.dropna(inplace=True)
6. 合并和连接
# 合并两个 DataFrame
df1 = pd.DataFrame({'key': ['A', 'B', 'C'], 'value': [1, 2, 3]})
df2 = pd.DataFrame({'key': ['A', 'B', 'D'], 'value': [4, 5, 6]})
# 按照 key 列合并
merged_df = pd.merge(df1, df2, on='key')
print(merged_df)
7. 分组和聚合
# 按某列分组并计算聚合值
grouped = df.groupby('city').agg({'age': 'mean'})
print(grouped)