Я использую pandas для анализа фреймов данных среднего размера (10 ГБ) - в основном для чтения, без манипуляций и добавления данных. Я прочитал отличный пост https://www.dataquest.io/blog/pandas-big-data/, и теперь мне интересно, почему нет функции read_csv_with_optimal_dtypes, которая:
dtypes для него, как объясняется в блогеdtypesread_csvЯ могу написать его сам, но это звучит настолько просто и полезно, что я удивлен, что такой функции нет ни в самом API pandas, ни в какой-то сторонней библиотеке ...
я что-то пропустил?
Тем не менее некоторые проблемы останутся нерешенными: например, для категориального типа, представленного строкой, как часто можно повторять значение, прежде чем оно определит, что это уровень, и насколько большим может вырасти набор уровней, прежде чем он будет виден как свободный текст. ?!
будет принимать запрос на перенос к пандам с хорошо документированной / протестированной функцией для этого (которая может быть представлена через .kwargs в read_csv)
@MarcelZoll - категориальный порог мощности можно настроить (например, уникальный / размер <1/4), и я думаю, что если вы выберете 10% данных, вы получите довольно хорошую оценку для всего набора данных ...






Одна из проблем, связанных с этим, заключается в том, что вы никогда не узнаете, чего ожидать, когда попытаетесь манипулировать данными; например, вы пытаетесь установить значение, которое не может быть представлено предполагаемым типом этого столбца. Однако я вижу смысл, если цель состоит в том, чтобы иметь статические данные с минимальным воздействием на память.