Надеюсь, что это поможет
Есть несколько способов попробовать и выбрать лучший подход, который вам подходит.
1. Укажите необходимые столбцы при загрузке данных. (точно так же, как Andy L.
ответ)
df = pd.read_excel(fileAddress, header=0, sheet_name='Sheet1',
usecols=['Name', 'Numbers', 'Address'])
2. Укажите dtypes
Pandas для каждой операции чтения данных выполняет тяжелую работу по определению типа данных самостоятельно. Это занимает как память, так и время. Кроме того, для этого необходимо, чтобы все данные считывались одновременно.
Чтобы этого избежать - укажите типы данных столбца (dtype
)
Пример:
pd.read_csv('sample.csv', dtype={"user_id": int, "username": object})
Доступные типы данных в pandas
[numpy.generic,
[[numpy.number,
[[numpy.integer,
[[numpy.signedinteger,
[numpy.int8,
numpy.int16,
numpy.int32,
numpy.int64,
numpy.int64,
numpy.timedelta64]],
[numpy.unsignedinteger,
[numpy.uint8,
numpy.uint16,
numpy.uint32,
numpy.uint64,
numpy.uint64]]]],
[numpy.inexact,
[[numpy.floating,
[numpy.float16, numpy.float32, numpy.float64, numpy.float128]],
[numpy.complexfloating,
[numpy.complex64, numpy.complex128, numpy.complex256]]]]]],
[numpy.flexible,
[[numpy.character, [numpy.bytes_, numpy.str_]],
[numpy.void, [numpy.record]]]],
numpy.bool_,
numpy.datetime64,
numpy.object_]]
(как вы можете видеть, список слишком длинный, поэтому, если вы укажете dtypes, это ускорит вашу работу)
3. Вы используете конвертер, если вам нужна помощь в преобразовании данных в ваших данных.
(Почти как 2, альтернатива 2).
В случаях, таких как нулевые значения или пустые,Вы можете легко иметь дело здесь. (Отказ от ответственности: я никогда не пробовал это)
Пример
def conv(val):
if not val:
return 0
try:
return np.float64(val)
except:
return np.float64(0)
df = pd.read_csv('sample.csv', converters={'COL_A':conv,'COL_B':conv})
4. Чтение данных в чанках всегда помогает.
chunksize = 10 ** 6
for chunk in pd.read_csv('sample.csv', chunksize=chunksize):
process(chunk)
Следует отметить, что каждый chunk
следует рассматривать как отдельный фрейм данных. Помогает читать большие файлы, такие как 4 ГБ или 6 ГБ.
5. Используйте параметр pandas low_memery.
Используйте (low_memory=False
) для явного указания пандам загружать в память файлы большего размера или в случае появления какого-либо предупреждения о памяти.
df = pd.read_csv('sample.csv', low_memory=False)