#python #pandas #csv
#python #pandas #csv
Вопрос:
Я хочу преобразовать несколько файлов .csv (преобразовать значения, разделенные запятыми) в .csv (значения, разделенные запятыми), используя Python
import pandas as pd
Path = 'C:\Users\006sa\Desktop\Test'
Filename = '\MB.csv'
xl = Path Filename
df = pd.read_csv(xl, 'MB', index_col=None)
df.to_csv(Path '\csvfile.csv',delimiter=',')
Я сталкиваюсь с этой ошибкой
to_csv() получил неожиданный аргумент ключевого слова ‘delimiter’
Комментарии:
1. по умолчанию sep в
to_csv
равен','
, а paramsep
нетdelimiter
2. это дает мне значение, разделенное запятыми, я хочу значение, разделенное запятыми
3.
.csv
Файл по сути представляет собой текстовый файл, разделенный запятыми4. @MDSAQUIBNASIRKHAN вы выступаете против значений, разделенных запятыми и разделителями . Мне трудно понять, в чем разница между ними. Не могли бы вы отредактировать свой вопрос, чтобы предоставить конкретный пример одних и тех же данных в обоих форматах?
5. Я подозреваю, что это может быть проблемой X / Y. Разделенные и с разделителями означают одно и то же в этом контексте, поэтому похоже, что вы пытаетесь прочитать файл, а затем снова выплюнуть его обратно. Чего вы на самом деле пытаетесь достичь?
Ответ №1:
Аргумент, используемый в to_csv()
является sep
, не delimiter
df.to_csv(Path 'csvfile.csv', sep=',')
Тем не менее, запятые используются по умолчанию, поэтому этот аргумент избыточен.
Комментарии:
1. Они являются псевдонимами и оба выполняют одно и то же.
2. @coldspeed Какая версия pandas поддерживает разделитель? Я использую 0.24.1, и это не работает.
3. если я использую приведенную выше строку, я получаю выходные данные, но все столбцы перепутываются
Ответ №2:
Я внес некоторые изменения
import csv
Path = 'C:\Users\006sa\Desktop\Test'
File = '\MB.csv'
xl = Path File
with open(xl, 'r') as csv_file:
csv_reader = csv.reader(csv_file)
with open(Path '\new_file.csv', 'w',newline='') as new_file:
csv_writer = csv.writer(new_file, delimiter=',')
for line in csv_reader:
csv_writer.writerow(line)
Это работает.
Спасибо за помощь