Python 拆分csv文件的一列

Python 拆分csv文件的一列,python,csv,for-loop,Python,Csv,For Loop,作为Python的初学者,我试图实现的目标听起来非常简单,但我无法让Python按预期工作 我有一个csv文件,其中有几个标题: Area Facility AAA car, train, bus BBB car CCC car, bus, tram DDD bicycle EEE car, bus, train, tram, walk FFF train, tram, plane, helicopter 我试图将“设施”列拆分为不同的单词

作为Python的初学者,我试图实现的目标听起来非常简单,但我无法让Python按预期工作

我有一个csv文件,其中有几个标题:

Area    Facility
AAA     car, train, bus
BBB     car
CCC     car, bus, tram
DDD     bicycle
EEE     car, bus, train, tram, walk
FFF     train, tram, plane, helicopter
我试图将“设施”列拆分为不同的单词,然后运行一些查询(例如,独特的设施)。我想要的输出是列2中的火车、电车、飞机、步行等

我能够成功地将csv拆分为两列,但如果我进一步迭代,它将分解为单个字母

import csv

fOpen1=open('C:\data.csv')

Facilities=csv.reader(fOpen1)
unique=[]

for row in Facilities:
    for facility in row[1]:
        if row[13] not in unique:
        unique.append(row[13])
我环顾四周,发现有人在使用split.lines,但也没有运气使用它

有什么建议/想法吗


谢谢大家!

以下是拆分的文档

Docstring:S.split(sep=None,maxslit=-1)->字符串列表

使用sep作为分隔符字符串,返回S中的单词列表。 如果给定maxsplit,则最多完成maxsplit拆分。如果sep不是 指定或为“无”,则任何空白字符串都是分隔符且为空 字符串将从结果中删除

基本上,如果您在没有参数的情况下调用
split
,它会在空格(数据集中的列)上拆分,您可以通过使用该字符调用split来拆分任何其他字符,例如

print("car, train, bus".split(','))
['car', ' train', ' bus']

当csv文件使用
拆分列时,如果第一列和第二列之间没有
,则每行的输出如下:

[“区域设施”]

[‘AAA汽车’、‘火车’、‘公共汽车’]

[“BBB汽车”]

['CCC汽车'、'公共汽车'、'电车']

['DDD自行车']

[‘电动汽车’、‘公共汽车’、‘火车’、‘有轨电车’、‘步行’]

[‘FFF火车’、‘电车’、‘飞机’、‘直升机’]

所以,您可以使用
列表的第一个元素的
split
来获得第一个设施。其他设施存储在
列表的其余部分
。您的目标可以实现如下:

import csv

fOpen1=open('C:\data.csv')

Facilities=csv.reader(fOpen1)
unique=[]

for row in Facilities:
    first_facility = row[0].split()[1] # by default, use space to split
    if first_facility not in unique:
        unique.append(first_facility)
    for rest_facility in row[1:]:
    if rest_facility not in unique:
        unique.append(rest_facility)

print unique

这工作正常,但我现在有麻烦的循环。我想我得自己解决。谢谢您的帮助@Maxymoo@Hooting-它给了我一条错误消息-列表索引超出范围。@VGu请发布您的输入我的输入与原始帖子中发布的表相似。只是有更多的栏目。要我发布此数据集的摘录吗?