杰瑞科技汇

Python如何创建DataFrame?

在 Python 中,最常用的创建 DataFrame 的方式是使用 pandas 库,DataFrame 是一个二维的、大小可变、且具有标签轴(行和列)的数据结构,类似于 Excel 表格或 SQL 表。

Python如何创建DataFrame?-图1
(图片来源网络,侵删)

下面我将为你详细介绍几种创建 DataFrame 的常用方法,从最基础到更复杂的场景。

第一步:安装 Pandas

如果你的环境中还没有安装 pandas,请先打开终端或命令提示符,运行以下命令:

pip install pandas

从字典创建(最常用)

这是最直观、最常用的方法之一,字典的键将作为 DataFrame 的列名,字典的值(通常是列表)将作为该列的数据。

示例:

Python如何创建DataFrame?-图2
(图片来源网络,侵删)
import pandas as pd
# 1. 准备数据:使用字典
data = {
    '姓名': ['张三', '李四', '王五', '赵六'],
    '年龄': [25, 30, 28, 35],
    '城市': ['北京', '上海', '广州', '深圳']
}
# 2. 创建 DataFrame
df = pd.DataFrame(data)
# 3. 打印 DataFrame
print(df)

输出:

  姓名  年龄  城市
0  张三  25  北京
1  李四  30  上海
2  王五  28  广州
3  赵六  35  深圳

从列表的列表创建

如果你有一系列等长的列表,每个内部列表代表一行数据,你可以用它们来创建 DataFrame。

示例:

import pandas as pd
# 1. 准备数据:列表的列表
data = [
    ['张三', 25, '北京'],
    ['李四', 30, '上海'],
    ['王五', 28, '广州'],
    ['赵六', 35, '深圳']
]
# 2. 创建 DataFrame,并指定列名
# columns 参数用于指定列名
df = pd.DataFrame(data, columns=['姓名', '年龄', '城市'])
# 3. 打印 DataFrame
print(df)

输出:

Python如何创建DataFrame?-图3
(图片来源网络,侵删)
  姓名  年龄  城市
0  张三  25  北京
1  李四  30  上海
2  王五  28  广州
3  赵六  35  深圳

从列表的字典创建

这是一种混合方式,外层是列表,内层是字典,每个字典代表一行数据,字典的键成为列名,这种方法非常灵活,特别是当数据行不完整时。

示例:

import pandas as pd
# 1. 准备数据:列表的字典
data = [
    {'姓名': '张三', '年龄': 25, '城市': '北京'},
    {'姓名': '李四', '年龄': 30},  # 缺少 '城市' 信息
    {'姓名': '王五', '年龄': 28, '城市': '广州'},
    {'城市': '深圳', '年龄': 35, '姓名': '赵六'} # 键的顺序不影响
]
# 2. 创建 DataFrame
# pandas 会自动处理缺失的数据,填充为 NaN (Not a Number)
df = pd.DataFrame(data)
# 3. 打印 DataFrame
print(df)

输出:

  姓名   年龄  城市
0  张三  25.0  北京
1  李四  30.0   NaN
2  王五  28.0  广州
3  赵六  35.0  深圳

注意:李四城市列自动填充了NaN


从 NumPy 数组创建

如果你的数据已经是 NumPy 数组格式,可以直接将其转换为 DataFrame。

示例:

import pandas as pd
import numpy as np
# 1. 准备数据:NumPy 数组
data = np.array([
    [1, 'A', 100],
    [2, 'B', 150],
    [3, 'C', 120]
])
# 2. 创建 DataFrame,并指定列名
df = pd.DataFrame(data, columns=['ID', '类别', '分数'])
# 3. 打印 DataFrame
print(df)

输出:

   ID 类别  分数
0   1   A  100
1   2   B  150
2   3   C  120

从文件创建(实际应用中非常普遍)

在实际工作中,数据通常存储在外部文件中,如 CSV、Excel 等,pandas 提供了非常方便的读取函数。

从 CSV 文件创建

假设你有一个名为 data.csv 的文件,内容如下:

姓名,年龄,城市
张三,25,北京
李四,30,上海
王五,28,广州

使用 pd.read_csv() 函数:

import pandas as pd
# 从 CSV 文件创建 DataFrame
df = pd.read_csv('data.csv')
# 打印 DataFrame
print(df)

从 Excel 文件创建

假设你有一个名为 data.xlsx 的 Excel 文件。

使用 pd.read_excel() 函数(需要安装 openpyxl 库:pip install openpyxl):

import pandas as pd
# 从 Excel 文件创建 DataFrame
# sheet_name='Sheet1' 指定要读取的工作表名
df = pd.read_excel('data.xlsx', sheet_name='Sheet1')
# 打印 DataFrame
print(df)

创建 DataFrame 后的常用操作

创建 DataFrame 后,你可能需要查看或操作它。

import pandas as pd
data = {'姓名': ['张三', '李四'], '年龄': [25, 30]}
df = pd.DataFrame(data)
# 1. 查看前几行数据 (默认5行)
print("前两行数据:")
print(df.head(2))
# 2. 查看数据的基本信息(列名、非空值数量、数据类型等)
print("\n数据信息:")
df.info()
# 3. 查看数据的描述性统计(仅针对数值列)
print("\n描述性统计:")
print(df.describe())
# 4. 获取列名
print("\n列名:")
print(df.columns)
# 5. 获取索引
print("\n索引:")
print(df.index)
创建方式 适用场景 示例代码
从字典 数据结构清晰,列名明确 pd.DataFrame({'A': [1, 2]})
从列表的列表 数据行结构规整 pd.DataFrame([[1, 2], [3, 4]], columns=['A', 'B'])
从列表的字典 数据行不完整或结构灵活 pd.DataFrame([{'A': 1}, {'B': 2}])
从 NumPy 数组 数据已为数值型数组 pd.DataFrame(np.array([[1, 2]]))
从文件 实际应用最广,读取外部数据 pd.read_csv('file.csv')

对于初学者来说,从字典创建从文件创建 是必须掌握的两种核心方法。

分享:
扫描分享到社交APP
上一篇
下一篇