从CSV文件数据集中消除“ ...”中的数据字段

时间:2019-12-11 19:19:40

标签: python apache-spark

我们正在开发一个程序,该程序可以对数据集中的信息进行排序,并且我们想要.split()CSV文件。问题在于我们要拆分的字段位于“”之间,并且带有逗号。 (我们已经在分割逗号)。它是对项目无用的产品的描述。

291,葡萄牙,”该结构化葡萄酒中存在紫罗兰,松露和成熟的黑色水果。它的丰富度几乎太多,但令人钦佩。固体单宁,深色,沉重的质地和复杂的酸度都显示出老化的潜力。从2018年开始饮用。“ ,, 91,18.0,Alentejano ,, Touriga Nacional,SãoMiguelHerdade

粗体部分是我们想要的部分。

是否可以选择特定部分? (.split(“ ...”))

3 个答案:

答案 0 :(得分:0)

您可以使用pythons csv模块为您解决此问题

data = """91,Portugal,"Violets, truffles and ripe black fruits are present in this structured wine. It has almost too much richness, but there is plenty to admire. Solid tannins, a dark, heavy texture and complex acidity all show aging potential. Drink from 2018.",,91,18.0,Alentejano,,,Touriga Nacional,Herdade de São Miguel"""

import csv
for row in csv.reader(data.splitlines()):
    row.pop(2)
    print(row)

输出

['91', 'Portugal', '', '91', '18.0', 'Alentejano', '', '', 'Touriga Nacional', 'Herdade de São Miguel']

答案 1 :(得分:0)

get_file = open("yourfile.csv","r")

read_file = get_file.read().strip().split('"""')
for i in read_file:
    print(i.split(","))

get_file.close()

**此其他代码将不带有“''**

get_file = open("data.csv","r")
read_file = get_file.readlines()
for i in read_file:
    num_st = i.split(",")[0][3:5]
    print(num_st)
    print("_______________")
    print(i.split(",")[1:-1])
get_file.close()

*只需在您的计算机上尝试*

答案 2 :(得分:0)

欢迎。

如果所需部分始终以"开头,而没有其他内容,则可以检查csv数据是否以"开头并忽略它。

import csv

with open('yourfile.csv') as csv_file:
    csv_reader = csv.reader(csv_file, delimiter=',')
    for row in csv_reader:
        if row.startswith('"'):
          break
        else:
          #yourcode