Как я могу поместить один `" `в мой CSV, используя Python и панд - PullRequest
0 голосов
/ 26 февраля 2019

Я работаю в Python над обработкой нескольких файлов Excel в одном CSV, чтобы загрузить этот CSV в другую корпоративную программу.Один из столбцов должен быть с двойными кавычками.Пример: Номер клиента: "03939930303" "22489903040" Я пытаюсь добавить кавычки, используя код, подобный этому

df['customer_number'] = '"'+ df['customer_number'] + '"'

, но после этого в моем CSV-файле у меня есть это:

"""03939930303"""
"""22489903040"""

Мне нужна только одна цитата, а не три.Вещи, которые я уже пробовал:

csv.QUOTE_NONE

не работает, потому что у меня есть другой заголовок, который должен выглядеть как "customer name" и около 15+ заголовков, которые должны быть с кавычками.

Как яможно поместить один " в мой csv, используя python и pandas?

ОБНОВЛЕНИЕ:

CSV CONTENT:

N, пусто, NUMBER, "('Something Something ',' sumAve ') "," (' Something Something ',' sumTr ') "," (' Something Something ',' sumPL ') "," ("Something Something", "DATA (IB 35%)') "," (' Characteristic ',' sumAve ') "," (' Characteristic ',' sumTr ') "," (' Characteristic ',' sumPL ') "," (' Characteristic ',' DATA (IB)35%) ') "," (' Finance ',' sumAve ') "," (' Finance ',' sumTr ') "," (' Finance ',' sumPL ') "," (' Finance ','ДАННЫЕ (IB 35%) ') "," (' Food ',' sumAve ') "," (' Food ',' sumTr ') "," (' Food ',' sumPL ') "," (' Food',' DATA (IB 35%) ') "," (' Text ',' sumAve ') "," (' Text ',' sumTr ') "," (' Text ',' sumPL ') ","('Text', 'DATA (IB 35%)') "," ('Due', Due 2 ',' sumAve ') "," (' Due ', Due 2', 'sumTr') "," («Срок оплаты», «Срок исполнения 2», «sumPL») «,» («Срок исполнения, срок 2», «ДАННЫЕ (IB 35%)») "," ('BAG', 'sumAve') "," ('BAG', 'sumTr') "," ('BAG', 'sumPL') "," ('BAG', 'DATA (IB 35%) ') "," (' OIL ',' sumAve ') "," (' OIL ',' sumTr ') "," (' OIL ',' sumPL ') "," (' OIL ',' DATA(IB 35%) ') "," (' Labor ',' sumAve ') "," (' Labor ',' sumTr ') "," (' Labor ',' sumPL ') "," ("Labor", 'DATA (IB 35%)') "," ('Service', 'sumAve') "," ('Service', 'sumTr') "," ('Service', 'sumPL') "," («Сервис», «ДАННЫЕ (IB 35%)»), Город, Регион, КОД 1, КОД 2, 0,1000,2000,3000,4000,5000,6000,7000,8000,9000,10000,11000,12000,13000,14000,15000,16000,17000,18000,19000,20000,21000,22000,23000,24000,25000,26000,27000,28000,29000,30000,31000,32000,33000,34000,35000,36000,37000,38000,39000,40000, НЬЮ-ЙОРК, 0, N6UJ9A00C0J8, TOTO africa 1 ,, 00,41000,42000,43000,44000,45000,46000,47000,48000,49000,50000,51000,52000,53000,54000,55000,56000,57000,58000,59000,60000,61000,62000,63000,64000,65000,66000,67000,68000,69000,70000,71000,72000,73000,74000,75000,76000,77000,78000,79000,80000, НЬЮ-ЙОРК, 0, N6UJ9A013229, ТОТО Африка 2, 001,81000,82000,83000,84000,85000,86000,87000, 88000,89000,90000,91000,92000,93000,94000,95000,96000,97000,98000,99000,100000,101000,102000,103000,104000,105000,106000,107000,108000,109000,110000,111000,112000, 113000,114000,115000,116000,117000,118000,119000,120000, НЬЮ-ЙОРК, 0, N6UJ9A00YFYS, TOTO africa 3 ,, 1234567890,121000,122000,123000,124000,125000,126000,127000,128000,129000,130000, 131000,132000,133000,134000,135000,136000,137000,138000,139000,140000,141000,142000,143000,144000,145000,146000,147000,148000,149000,150000,151000,152000,153000,154000,155000, 156000,157000,158000,159000,160000, НЬЮ-ЙОРК, 0, N6UJ9A00LR36, "toto" "africa 4" ",, ,, 123456789012,161000,162000,163000,164000,165000,166000,167000,168000,169000,170000, 171000,172000,173000,174000,175000,176000,177000,178000,179000,180000,181000,182000,183000,184000,185000,186000,187000,188000,189000,190000,191000,192000,193000,194000,195000, 196000,197000,198000,199000,200000, НЬЮ-ЙОРК, 0, N6UJ9A00G1YH, toto africa ,, 0234567891,201000,202000,203000,204000,205000,206000,207000,208000,209000,210000,211000,212000,213000,214000,215000,216000,217000,218000,219000,220000,221000,222000,223000,224000,225000,226000,227000,228000,229000,230000,231000,232000,233000,234000,235000,236000,237000,238000,239000,240000, НЬЮ-ЙОРК, 0, N6UJ9A00C0J9, toto africa,, 023456789012,241000,242000,243000,244000,245000,246000,247000,248000,249000,250000,251000,252000,253000,254000,255000,256000,257000,258000,259000,260000,261000,262000,263000,264000,265000,266000,267000,268000,269000,270000,271000,272000,273000,274000,275000,276000,277000,278000,279000,280000, НЬЮ-ЙОРК, 0, N6UJ9A013230, всего

мой код в Юпитере:

import pandas as pd
import csv
df = pd.read_csv('dummy_new.csv')
df['NUMBER'] = '"' + df['NUMBER'].astype(str) + '"'
df.to_csv('final.csv')

1 Ответ

0 голосов
/ 26 февраля 2019

Используя подмножество ваших тестовых данных:

      N  empty          NUMBER  ('Something Something', 'sumAve')
0          NaN             "0"                               1000
1          NaN             "0"                              41000
2          NaN             "1"                              81000
3          NaN    "1234567890"                             121000
4          NaN  "123456789012"                             161000
5          NaN     "234567891"                             201000
6          NaN   "23456789012"                             241000

Я запустил ваш текущий код с парой модификаций

df['NUMBER'] = '"' + df['NUMBER'].astype(str) + '"'

# save as .txt instead of .csv, use the csv.QUOTE_NOTE in the quoting parameter, and set the escapechar to `|`
df.to_csv('final.txt', index=None, quoting=csv.QUOTE_NONE, escapechar='|')

Это не позволит "" "стать тройными кавычками.

Кроме того, если вы используете Excel для чтения этого текста, убедитесь, что для квалификатора текста задана одинарная кавычка, а не двойная, чтобы цифры читались как текст.

excel

Ссылка pandas to_csv выходной котировки вопрос

...