У меня есть следующий фрейм с именем df, длина которого составляет 65 элементов.
Name Data
0 Name1 Data1
1 Name2 Data2
2 Name3 Data3
....
Я хочу как можно более равномерно разделить его на 30 фреймов данных.
Итак, с длиной 65, я хочу, чтобы было 5 кадров длиной 3 и 25 длиной 2 (что в сумме составляет 65)
Я использую следующую функцию:
def chunk(seq, size):
return (seq[pos:pos + size] for pos in range(0, len(seq), size))
n = 30 #number of files
length = len(df)
counter=0
for df_chunk in chunk(frame, int(length / n) + (length % n > 0)):
counter+=1
df_chunk.to_csv(f"path/to/file{counter}.csv")
Но я получаю только 21 файлы, которые имеют длину 3 и 1 файл длиной 2 вместо 5 файлов, которые имеют длину 3 и 25 файлов, длина которых равна 2.
У кого-нибудь есть идеи, как я могу достичь того, что хочу ?