Есть ли способ отделить строки в списке с запятыми в CSV? - PullRequest
0 голосов
/ 01 июля 2019

пытается взять 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 я использовал pandas для чтения 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']] до последней строки, где функция разбиения доставляет мне неприятности. Я также не уверен, как избавиться от : bar в конце каждой из нарезанных строк после их нарезки

1 Ответ

0 голосов
/ 01 июля 2019

Базовый подход (единственный, который приходит мне в голову) состоит в том, чтобы выполнять итерацию по каждой строке и выполнять операции разделения строк для извлечения необходимых данных.

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']]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...