#python #csv
#python #csv
Вопрос:
Я записываю свои df
данные в .csv
файл для загрузки в Minitab. Однако в настоящее время я выполняю много пост-манипуляций с .csv
файлом, чтобы сделать его удобным для Minitab. Я хотел бы написать свой код на Python, чтобы мне было проще и быстрее иметь его в желаемом формате.
В настоящее время: csv.writer
в настоящее время выполняется запись .csv
в следующий формат:
Моя цель: записать csv в этом формате; (а также заменить точки на запятые).
import csv
a_file = open("raw_data.csv", "w")
writer = csv.writer(a_file)
for key, value in df.items():
writer.writerow([key, value])
a_file.close()
Мой df
выглядит следующим образом:
{'K': [77.92589285714281, 75.34811320754717, 77.68070175438596, 75.37850467289722, 79.62212389380527, 79.40999999999998, 79.3535714285714, 77.35833333333332, 79.21904761904761, 'Z': [76.04260869565215, 80.10176991150445, 76.62086956521739, 77.64473684210527, 79.50087719298244, 80.70350877192982, 78.92543859649123, 80.88198198198197, 78.96869565217392, 77.112389380531,}
Ответ №1:
вы очень близки
import csv
a_file = open("raw_data.csv", "w")
writer = csv.writer(a_file)
for key, value in df.items():
# value is a list, so you have to iterate through that
for v in value:
# you'd see this fix in a moment on your own
writer.writerow([value, key])
a_file.close()
Я не знаю, как выполнить десятичное преобразование, я уверен, что это связано с «locale».
Ответ №2:
Поскольку у вас есть все значения внутри ключа, вам нужно снова повторить значения. Код, который вам должен понадобиться, выглядит следующим образом:
import csv
a_file = open("raw_data.csv", "w")
writer = csv.writer(a_file, quoting=csv.QUOTE_ALL)
for key, values in df.items():
for value in values:
writer.writerow([key, str(value).replace(".",",")])
Диалект quoting
закрывает все значения и ключи двойными кавычками, поскольку вы будете использовать запятые в значениях, которые вам понадобятся (поскольку формат csv работает с запятыми), а str(value).replace(".",",")
просто замените точки запятыми