преобразование значений, разделенных запятыми, в значения, разделенные запятыми, с помощью python

#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 равен ',' , а param sep нет 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)
  

Это работает.
Спасибо за помощь