首页 > 解决方案 > 如何有效地使用包含数千个字符串格式的 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.arrayxarray持有 3d 对象更好?

后者的问题是行大小不同,所以我可能需要填充nan值以使它们具有相同的长度或其他内容。

在这种情况下,最佳做法是什么?我试图避免循环,因为这将非常耗时。

标签: pythonpandasnumpydictionary

解决方案


如果您的字符串是 CSV,具有固定数量的列(您说您始终有 11 列和 3000-5000 行),那么您可以将它们完全转储到文件中并从该文件中读取数据框。这是相当快的。

如果不是 CSV,那么无论如何,您可以剪切页眉和页脚,并将它们连接到一个文件中。

下一个变体:将该字典包装到一个子类StringIO或类似文件的对象中,该对象将在方法中返回字符串键read并将对象传递给pandas.read_csv


推荐阅读