将很大的DataFrame写入文本文件或拆分Dataframe

时间:2019-06-05 08:00:48

标签: csv dataframe text split

我有一个数据框,其形状为“(4255300,10)”。我必须将其打开到csv文件中,但是由于EXcel的大小限制,这是不可能的。 我试图按行分割df(Pandas: split dataframe into multiple dataframes by number of rows),但只有索引号插入到分割中(我将这些分割写入了csv文件中)。 我也尝试将此df写入文本文件((np.savetxt('desktop / s2.txt',z.values,fmt ='%d',delimiter =“ \ t”))),但是将错误的数据插入到其中文本文件。 df的宽度没有问题,唯一的问题是它的长度,即行数。 有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

您可以将DataFrame分成较小的块,然后像这样导出:

# Creating a DataFrame with some numbers
df = pd.DataFrame(np.random.randint(0,100,size=(42000, 10)), index=np.arange(0,42000)).reset_index()
# Setting my chunk size
chunk_size = 10000
# Assigning chunk numbers to rows
df['chunk'] = df['index'].apply(lambda x: int(x / chunk_size))
# We don't want the 'chunk' and 'index' columns in the output
cols = [col for col in df.columns if col not in ['chunk', 'index']]
# groupby chunk and export each chunk to a different csv.
i = 0
for _, chunk in df.groupby('chunk'):
    chunk[cols].to_csv(f'chunk{i}.csv', index=False)
    i += 1