У меня есть пандас DataFrame, который я хочу записать в двоичный файл, однако df содержит смешанные dtypes.Если я использовал df.values.tofile()
, я не могу указать другие dtypes (даже при указании astype('f4, f4, i4, i4').tofile()
в приведенном ниже примере).Обходной путь в настоящее время должен использовать struct
, но очень медленный!
import pandas as pd
import numpy as np
df = pd.DataFrame(data=np.random.random(size=(10, 4)) * 10, columns=['f1', 'f2', 'i1', 'i2'])
df.i1 = df.i1.astype(int)
df.i2 = df.i2.astype(int)
with open('tmp', 'w') as ply:
for ix, row in df.iterrows():
ply.write(struct.pack('<ffii', *row.values))
Я создаю файл .ply
, который требует правильного форматирования данных.