我如何使用python和pandas在我的csv中放一个```

问题描述 投票:1回答:1

我正在python中处理多个excel文件在一个csv中将这个csv上传到另一个公司程序中。其中一列必须带双引号。示例:客户编号:“03939930303”“22489903040”我试图使用这样的代码附加引号

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

但在我的csv文件中,我有这个:

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

我只需要一个报价,而不是三个。我已经尝试过的事情:

csv.QUOTE_NONE

不起作用,因为我有另一个标题应该看起来像"customer name"和大约15个标题,应该是引号。

我如何使用python和pandas将单个"放入我的csv中?

更新:

CSV内容:

N,空,NUMBER,“('Something Something','sumAve')”,“('Something Something','sumTr')”,“('Something Something','sumPL')”,“('Something Something ',''DATA(IB 35%)')“,”('特征','sumAve')“,”('特征','sumTr')“,”('特征','sumPL')“,” ('特征','数据(IB 35%)')“,”('财务','sumAve')“,”('财务','sumTr')“,”('财务','sumPL') “,”('财务','数据(IB 35%)')“,”('食品','sumAve')“,”('食品','sumTr')“,”('食品',' sumPL')“,”('食品','数据(IB 35%)')“,”('文字','sumAve')“,”('文字','sumTr')“,”('文字','sumPL')“,”('文字','数据(IB 35%)')“,”('到期',到期2','sumAve')“,”('到期',到期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%)')“, “('工党','sumAve')”,“('工党','sumTr')”,“('工党','sumPL')”,“('工'','数据(IB 35%)' )“,”('服务','sumAve')“,”('服务','sumTr' )“,”('服务','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非洲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,TOTO非洲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非洲3 ,, 1234567890,121000,122000,123000,124000,125000,126000,1 27000,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非洲,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非洲,, 023456789012,241000,242000,243000,244000,245000,246000,24 7000,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,多多

我在jupiter中的代码:

import pandas as pd
import csv
df = pd.read_csv('dummy_new.csv')
df['NUMBER'] = '"' + df['NUMBER'].astype(str) + '"'
df.to_csv('final.csv')
python pandas csv quotes double-quotes
1个回答
0
投票

使用测试数据的子集:

      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 output quoting issue

© www.soinside.com 2019 - 2024. All rights reserved.