Python Itertools groupby - запись строк в CSV-файл - PullRequest
0 голосов
/ 08 марта 2019

Я новичок в Python, извиняюсь, если это глупый вопрос.У меня есть текстовый файл со следующим вводом:

  • Apple Apple1
  • Apple Apple2
  • Аарон Аарон1
  • Аарон Аарон2
  • Аарон Аарон3
  • Дерево Дерево1

У меня есть следующий код:

import csv
import sys
from itertools import groupby

with open('File.txt', 'r', encoding='utf-8') as csvfile:
    reader = csv.reader(csvfile, delimiter='\t')
    next(reader, None)
    a = [[k] + [x[1]  for x in g] for k, g in groupby(reader, key=lambda row: row[0])]
    sys.stdout=open('Out.txt','w', encoding='utf-8')
    print (str(a))

Чего я хочу достичь:

  • Apple Apple1, Apple2
  • Аарон Аарон1, Аарон2, Аарон3
  • Tree Tree1

Однако вывод, который я сейчас получаю, находится в форме списка, пока я хочу егобыть напечатано строка за строкой.Как мне этого добиться?

1 Ответ

0 голосов
/ 08 марта 2019

Как насчет

import pandas as pd

df = pd.read_csv('File.txt',delimiter=' ' , header=None)
grouped = df.groupby(0).agg(lambda col: ', '.join(col)).to_records()

for group in grouped:
    print(group[0] + ' ' + group[1])
...