Python 拆分csv文件的一列
作为Python的初学者,我试图实现的目标听起来非常简单,但我无法让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 我试图将“设施”列拆分为不同的单词
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请发布您的输入我的输入与原始帖子中发布的表相似。只是有更多的栏目。要我发布此数据集的摘录吗?