You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Jupyter Notebook中快速创建StackOverflow上的DataFrame样本

在Jupyter Notebook中高效创建指定Pandas DataFrame的方法

我平时在Jupyter里复现这类样本数据时,最常用的是下面几个方法,省心又高效,按便捷度排序:

方法1:直接用pd.DataFrame构造(适合数据量小的场景)

直接把每行数据写成列表嵌套的形式,再指定列名,一步到位。这种方式直观,适合数据行数少的情况,复制粘贴数据就行,不容易出错:

import pandas as pd

# 把样本数据按行整理成列表
data = [
    [-0.420430, -0.394562, 0.760232, 0.152246, -0.671229],
    [0.388447, 0.676054, -0.058273, -0.246588, 0.811332],
    [-0.498263, -0.108011, 0.952489, 0.504729, -0.385724],
    [1.069371, 0.143752, 0.414916, -1.180362, -0.029045],
    [-0.245684, -0.150180, 0.210579, 0.063154, 0.261488],
    [0.064939, -0.396667, 0.857411, -0.460206, 0.039658]
]

# 创建DataFrame并指定列名
df = pd.DataFrame(data, columns=['a', 'b', 'c', 'd', 'e'])

方法2:用io.StringIO读取原始文本块(高效且无需手动拆分数据)

如果不想手动把每行数据拆成列表,直接复制题目里的原始文本块,用io.StringIO把它转换成可读取的“文件对象”,再用pd.read_csv读取,这是我最推荐的方式——完全不用修改原始数据格式,复制粘贴即可:

import pandas as pd
from io import StringIO

# 直接复制题目里的原始文本,包括表头
raw_text = """a b c d e
0 -0.420430 -0.394562 0.760232 0.152246 -0.671229
1 0.388447 0.676054 -0.058273 -0.246588 0.811332
2 -0.498263 -0.108011 0.952489 0.504729 -0.385724
3 1.069371 0.143752 0.414916 -1.180362 -0.029045
4 -0.245684 -0.150180 0.210579 0.063154 0.261488
5 0.064939 -0.396667 0.857411 -0.460206 0.039658"""

# 用任意数量空格作为分隔符读取文本
df = pd.read_csv(StringIO(raw_text), sep='\s+')

这里sep='\s+'表示适配任意数量的空格分隔,完美匹配题目里的文本格式。

补充:如果是模拟类似随机数据(非指定值)

如果只是需要生成类似的随机浮点数据,而不是完全和题目一致的数值,可以用numpy快速生成:

import pandas as pd
import numpy as np

# 生成6行5列的随机正态分布数据
df = pd.DataFrame(np.random.randn(6,5), columns=['a','b','c','d','e'])

不过这个方法只适合模拟场景,如果你需要完全匹配题目里的样本数据,还是前两个方法更靠谱。

内容的提问来源于stack exchange,提问作者R.yan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:56:05