Как эффективно работать со словарем из тысяч DataFrames в строковом формате? - PullRequest
0 голосов
/ 20 сентября 2019

У меня есть словарь с около 10000 ключей, где каждый ключ содержит строку, подобную этой:

my_string = pd.DataFrame(np.random.randint(0, 100,size=(3000, 11))).to_string()

Каждая строка, если она преобразована в DataFrame, имеет размер от 1000 до 5000 в строках,но всегда 11 столбцов.

В конце мне понадобится каждая строка либо в np.array, либо в pd.DataFrame, чтобы работать с ней.

Мой вопрос: что такое быстрый формат для доставки полной информации?Лучше ли хранить его в виде словаря тысяч строк или лучше создать какой-нибудь np.array или xarray, который содержит 3d-объект?

Проблема с последним заключается в том, чторазмер строки другой, поэтому мне, вероятно, нужно заполнить значениями nan, чтобы они стали одинаковой длины или что-то еще.

Какова наилучшая практика в таких случаях?Я стараюсь избегать петель, так как это потребует много времени.

1 Ответ

0 голосов
/ 21 сентября 2019

Если ваши строки CSV, с фиксированным числом столбцов (вы говорите, что у вас всегда есть 11 столбцов и 3000-5000 строк), то вы можете выгрузить их полностью в файл и прочитать кадр данных из этого файла.Это довольно быстро.

Если это не CSV, то в любом случае вы можете вырезать верхний и нижний колонтитулы и объединять их в файл.

Следующий вариант: обернуть этот словарь в подкласс StringIO или подобный файлу объект, который будет возвращать строковые ключи в методе read и передавать объект в pandas.read_csv

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...