拆分csv fi的列

2024-06-23 03:36:39 发布

您现在位置:Python中文网/ 问答频道 /正文

作为一个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

我试图将“Facility”列拆分为不同的单词,然后运行一些查询(例如unique facilities)。我想要的输出是火车、有轨电车、飞机、步行等,列在第2列中。在

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

^{pr2}$

我环顾四周,发现有人用分割线但也没用上它。在

有什么建议/想法吗?在

谢谢你!在


Tags: 文件csv标题目标trainareacarbbb
2条回答

由于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']

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

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

这是分割的文档

Docstring: S.split(sep=None, maxsplit=-1) -> list of strings

Return a list of the words in S, using sep as the delimiter string. If maxsplit is given, at most maxsplit splits are done. If sep is not specified or is None, any whitespace string is a separator and empty strings are removed from the result.

基本上,如果您不带参数调用split,它将在空白(数据集中的列)上拆分,您可以通过使用该字符调用split来拆分任何其他字符,例如

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

相关问题 更多 >

    热门问题