#python #pandas #printing #split
#python #pandas #печать #разделение
Вопрос:
Мне нужно составить комбинацию определенных данных, данные доступны в файле Excel. но количество строк в миллионах. итак, я хочу напечатать 50000 строк на файл.
Мой код.(которые создают один файл в текстовом формате, но хотят печатать 50000 строк на файл)
import pandas as pd
import itertools
df = pd.read_excel("data.xlsx", header=None, index_col=False, dtype=str)
df.columns = ['A']
comb = list(itertools.product(df['A'], repeat=4))
a = comb
for x in range(len(a)):
print(a[x], file=open('comb.txt', 'a'))
Комментарии:
1. это 10000 или 50000 на файл?
2. Посмотрите на
grouper
рецепт вitertools
документации; он позволяет вам использоватьcomb
фрагменты по 50 000; вы будете записывать каждый фрагмент в отдельный файл.
Ответ №1:
i = 0
lines = []
for item in itertools.product(df['A'], repeat=4)):
lines.append(''.join(item))
if len(lines) > 50000:
with open(f'comb.{i}.txt', 'a') as f:
f.write('n'.join(lines))
lines = []
i = 1
Комментарии:
1. «Ошибка типа: элемент последовательности 0: ожидаемый экземпляр str», найден кортеж. в моем файле Excel есть коды. например, AA, AB, AC…… ЛЮБЫЕ решения для этого