我正在为方法编写单元测试 - 经常操纵DataFrames。
我的数据来自API调用,我已陷入在测试中使用API调用的陷阱 - 我觉得这不能准确测试特定组件,因为API调用可能存在问题。
更好的做法是在每个测试中创建一个虚拟数据帧,并单独测试API调用返回预期格式的DataFrames吗?
手动制作DataFrame很痛苦,是否有一个实用程序可以将活动控制台中的DataFrame对象转换为构建它所需的代码字符串?
答案 0 :(得分:1)
您始终可以将DataFrame
保存为CSV文件(以及pickle
等其他格式):
df.to_csv('my_data.csv')
当然重新加载它:
pd.DataFrame.from_csv('my_data.csv')
关于您的"测试数据":
问题始终是您要测试的功能。对我而言,听起来好像你只想测试特定结果等某些例程的实现,而不是你的API。由于您不打算测试您的API,因此请将其废弃,如果没有必要,请不要使用它。
如果有的话,我会写一个脚本/程序从我的API中提取数据,将其存储为我的测试数据"并将其用于我的单元测试。除非您可以动态生成测试数据(在相当长的时间内),否则您也可以这样做。
答案 1 :(得分:1)
import pandas as pd, numpy as np
np.random.seed([3,1415])
df = pd.DataFrame(np.random.randint(10, size=(3, 5)), columns=list('ABCDE'))
df
A B C D E
0 0 2 7 3 8
1 7 0 6 8 6
2 0 2 0 4 9
然后您可以使用to_json
和read_json
pd.read_json(df.to_json())
A B C D E
0 0 2 7 3 8
1 7 0 6 8 6
2 0 2 0 4 9