尝试获取行数和列数不确定的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
答案 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']]