python - 如何有效地使用包含数千个字符串格式的 DataFrame 的字典?
问题描述
我有一本包含大约 10,000 个键的字典,其中每个键包含一个如下字符串:
my_string = pd.DataFrame(np.random.randint(0, 100,size=(3000, 11))).to_string()
每个字符串(如果转换为DataFrame
)的大小在 1000 到 5000 行之间,但总是 11 列。
最后,我需要 anp.array
或 apd.DataFrame
中的每个字符串才能使用它。
我的问题是:提供完整信息的快速格式是什么?最好将其保留为包含数千个字符串的字典,还是制作某种 anp.array
或xarray
持有 3d 对象更好?
后者的问题是行大小不同,所以我可能需要填充nan
值以使它们具有相同的长度或其他内容。
在这种情况下,最佳做法是什么?我试图避免循环,因为这将非常耗时。
解决方案
如果您的字符串是 CSV,具有固定数量的列(您说您始终有 11 列和 3000-5000 行),那么您可以将它们完全转储到文件中并从该文件中读取数据框。这是相当快的。
如果不是 CSV,那么无论如何,您可以剪切页眉和页脚,并将它们连接到一个文件中。
下一个变体:将该字典包装到一个子类StringIO
或类似文件的对象中,该对象将在方法中返回字符串键read
并将对象传递给pandas.read_csv
推荐阅读
- angular - 当用户点击它时,用其中的新元素展开 li
- php - 日本货币格式以提高可读性
- oracle - weblogic 12c 中的应用程序状态保持“已准备好”
- python - google django“无法连接到‘127.0.0.1’上的 MySQL 服务器
- php - Apparmor:php脚本需要对“/”进行rw访问
- javascript - 如何在一个标签中将不同的锚点放在“data-url”属性上?
- javascript - jquery返回空,除非选择器前面有元素
- python - 打开并读取目录中的所有文本文件并使用正则表达式 python 过滤它们
- python-2.7 - 无法为 Python 2.7.14 安装机器人框架 HttpLibrary.HTTP 库
- arrays - MIPS - 无法找到数组中的最小值