Как предотвратить двойное цитирование пустых полей Pandas to_csv в выходном CSVPython

Программы на Python
Ответить
Anonymous
 Как предотвратить двойное цитирование пустых полей Pandas to_csv в выходном CSV

Сообщение Anonymous »

В настоящее время у меня есть пример скрипта Python, который читает CSV с двойными кавычками в качестве квалификатора текста и удаляет символы ascii и переводы строк в полях через фрейм данных. Затем он выводит кадр данных в CSV. Однако выходной CSV представляет собой двойные кавычки пустых полей. см. ниже:
import pandas as pd
import re
import csv

# Load the CSV file into a DataFrame
file_path = "\\\\Mylocation\\Original_facility_udfs.csv" # Replace with your CSV file path
df = pd.read_csv(file_path, quotechar='"')

# Define a function to clean a single cell
def clean_field(value):
if isinstance(value, str):
# Remove line feeds (\n, \r) and non-ASCII characters
value = re.sub(r'[\n\r]', ' ', value) # Replace line feeds with a space
value = re.sub(r'[^\x00-\x7F]', '', value) # Remove non-ASCII characters
return value

# Apply the cleaning function to all DataFrame fields
df_cleaned = df.map(clean_field)

# Save the cleaned DataFrame back to a new CSV file
cleaned_file_path = "\\\\Mylocation\\facility_udfs.csv" # Output file path
df_cleaned.to_csv(
cleaned_file_path,
index=False,
quotechar ='"',
quoting=csv.QUOTE_ALL, # Ensure double quotes remain as text qualifiers
lineterminator='\n' # Set line feed (\n) as the row terminator
)

print(f"Cleaned CSV saved to: {cleaned_file_path}")

Мой текущий вывод выглядит следующим образом
"date_key","facility_key","udf_type","udf_area_indic","udf_area"
"20240830","251","GL Unit Code","Facility for Type","",""
"20240830","251","Cost Center","Facility for Type","",""

желаемый результат должен быть
"date_key","facility_key","udf_type","udf_area_indic","udf_area"
"20240830","251","GL Unit Code","Facility for Type",,
"20240830","251","Cost Center","Facility for Type",,


Подробнее здесь: https://stackoverflow.com/questions/792 ... output-csv
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»