python - 处理字段值 pandas 内的逗号和双引号
问题描述
我想对csv文件进行一些操作,但是一开始就有问题。
我有一个这样的 csv 文件:
id,order_id,name1,name2,code,product_name,qty,price,transaction_datetime
1590621,S21001730,"ABC_FT_WM Boot","ABC-BOOT CLOSUR",,"[A2HYS1431]6" PREM BOOT,FQ",1,1529.20,"2021-03-06 18:48:41"
product_name 在字段值内有逗号和双引号。我试图解决这个问题。
这是我的代码:
import pandas as pd
import csv
df = pd.read_csv("test.csv",sep=',(?![^"]*\")',engine='python')
df.to_csv('test2.csv',na_rep='',sep=',', index = None)
但结果是:
id,order_id,name1,name2,code,product_name,qty,price,transaction_datetime
"1590621,S21001730,""ABC_FT_WM Boot"",""ABC-BOOT CLOSUR"",,""[A2HYS1431]6"" PREM BOOT,FQ"",1,,1529.20,""2021-03-06 18:48:41"",
这是失败的。所以我像这样更改我的代码:
import pandas as pd
import csv
n=9
df = pd.read_csv("test.csv",usecols=range(n),lineterminator='\n')
df.to_csv('test2.csv',na_rep='',sep=',', index = None)
我仍然失败,但比以前好多了。除product_name "[A2HYS1431]6" PREM BOOT,FQ" 变为 [A2HYS1431]6 PREM BOOT,"FQ""" 外,所有字段均符合标准
6" 去掉逗号, ,FQ 得到新的双引号。
我希望结果是这样的:
id,order_id,name1,name2,code,product_name,qty,price,transaction_datetime
1590621,S21001730,"ABC_FT_WM Boot","ABC-BOOT CLOSUR",,"[A2HYS1431]6" PREM BOOT,FQ",1,1529.20,"2021-03-06 18:48:41"
有没有办法处理字段值内的逗号和双引号?
解决方案
推荐阅读
- c++ - 试图找出向量中的任何元素是否为假
- java - Gson序列化后MySql给出语法错误
- sql - 使用 regexp_like 在 dba_source 中搜索文本
- javascript - 如何使用 JavaScript 拆分数组中的字符?
- cassandra - 在某些情况下,cassandra 中的增量整数是否可能?
- excel - 在 Excel 中比较三列并删除整行
- z3 - 将循环语义转换为 SMT-LIB
- r - 从数据框中删除非英语观察
- angular - Angular 和 Reactive 表单数组在表单数组中设置表单控件值,给出错误必须为表单控件名称提供值
- zurb-foundation - 移动设备上忽略了 XY 网格断点?