有没有一种方法可以将列表中包含逗号的字符串与csv分开?

时间:2019-07-01 17:56:20

标签: python pandas csv matrix

尝试获取行数和列数不确定的csv文件,并尝试将其切成列表列表,同时对某些条目进行切片并删除某些内容。

即: CSV内容:

num Name    alt : bar
1   foo 1   A : bar,B : bar
2   foo 2   C : bar,D : bar

最终目标:

[['foo 1','A','B'],['foo 2','C','D']

在python中,我曾使用熊猫读取csv,并已尝试使用.tolist()转换文件,但不确定切片应如何重复工作

import pandas as pd

matrix = pd.read_csv('matrix.csv',index_col = 0)
matrix = matrix.values.tolist()
matrix = [matrix(i) for i in matrix[1].split(',')]

上面的代码使我能够: matrix = [['foo 1', 'A : bar,B : bar'], ['foo 2', 'C : bar,D : bar']] 在split函数给我带来麻烦的最后一行之前。我也不确定如何在切片后的每个切成字符串的末尾去除: bar

1 个答案:

答案 0 :(得分:0)

一种基本方法(我唯一想到的一种方法)是遍历每一行并对字符串执行拆分操作以提取所需的数据。

ll = []
for _, row in df.iterrows():
    r = [row["num Name"]]
    el = [x.split(':')[0].strip() for x in row["alt : bar"].split(',')]
    r.extend(el)
    ll.append(r)

ll是:

[['foo 1', 'A', 'B'], ['foo 2', 'C', 'D']]