Я работаю над задачей предварительной обработки CSV-файла с помощью Python.Задача - прочитать файл original.csv, содержащий товары, купленные за одну транзакцию на строку.Мне нужно создать еще один CSV-файл, который должен выглядеть аналогично файлу target.csv, который будет отображать все данные в одной транзакции на строку.
original.csv (Здесь для каждой отдельно купленной позиции транзакции указан список на строку)
пример данных, которые выглядят как содержимое файла original.csv
Transaction Id Items
1 Eggs
1 Yogurt
1 Apple
2 Tea
2 Rice
В target.csv все данные в одной транзакцииперечисленные в одной строке. Так строка 1 содержит все товары, приобретенные в транзакции № 1.
пример данных, которые выглядят как содержимое файла target.csv
1 Eggs,Yogurt,Apple
2 Tea Rice
Я использую приведенный ниже код Python для преобразования файла original.csv в target.csv
#reading csv file
newdf = pd.read_csv('original.csv',header=None)
#creating an empty list
basket = []
'''
this code will enumerate through all transaction number in original csv file
and create a list with items belonging to one transaction. After for loop
execution gets completed list 'basket' will contain list of list containing
items of all transactions
'''
for id in newdf[1].unique():
a = [newdf[2][i] for i, j in enumerate(newdf[1]) if j == id]
basket.append(a)
'''
Now a new csv file is created with all items of one transaction in one
row getting written in this file.
'''
with open('target.csv','w',newline='') as writeFile:
writer = csv.writer(writeFile)
writer.writerows(basket)
writeFile.close()
Транзакция № 17 из выходного файла CSV
17 milk hand soap pasta individual meals spaghetti sauce cereals sandwich loaves hand soap
Транзакция № 17 в оригинальном CSV-файле
Transaction Id Items
17 Yogurt
17 Milk
17 hand soap
17 pasta
17 individual meals
...
Для транзакции № 17 одна позиция«Йогурт» отсутствует в файле target.csv.Я также проверил некоторые другие номера транзакций и обнаружил, что элементы отсутствуют.
Как отобразить все данные одной транзакции в одной строке в новом CSV-файле?