Как объединить несколько строк в один список, а не отдельные списки? - никаких панд, только csv

У меня есть несколько строк из файла CSV, которые необходимо объединить для создания одного списка.

Мой набор данных будет выглядеть так;

column 1       column 2   column3      column 4 ....... all the way to column 10
A              1           2             3                  4 5 6 7 8 9 10
B              5           10            15                  16 17 18 19 20

В настоящее время мой код будет выглядеть так:

cd1 = []
cd2 = []
cd3 = []
cd4 = []
cd5 = []
cd6 = []
cd7 = []
cd8 = []
cd9 = []
cd10 = []


#create lists with values from rows 
for row in physiciancounts:
    patID.append(row[0]) 
    cd1.append(row[2])
    cd2.append(row[3])
    cd3.append(row[4])
    all the way till row 10

# then I'll merge it using zip

Мне интересно, есть ли более питонический способ сделать это вместо создания нескольких списков и их объединения.

вывод будет выглядеть примерно так:

(1,2,3,4,5,6,7,8,9,10)
(5,10,15,16,17,18,19,20)

Я не включаю первый столбец, потому что это должен быть отдельный список. Я не получаю сообщение об ошибке; Я просто хочу посмотреть, есть ли лучший способ сделать это. Все еще новичок в python, поэтому я борюсь. Я также не могу выполнять однострочные циклы для объема того, что я делаю.


person V S    schedule 21.10.2020    source источник
comment
Трудно понять, что вы пытаетесь спросить, без образца ваших входных данных. Не могли бы вы предоставить всего несколько строк фактического CSV, в идеале, чтобы получить ожидаемый результат, который вы уже показываете?   -  person tripleee    schedule 21.10.2020


Ответы (1)


Если я правильно понял ваш вопрос, просто добавьте еще один цикл.

column_count = 10
cd = [[]] * column_count
for row in physiciancounts:
    for field in range(column_count):
        cd[field].append(row[field])

Это также без необходимости собирает второй столбец (который вы называете первым в своем вопросе, то есть индекс 1); если вы хотите избежать этого, возможно, добавьте if field != 1: внутри цикла for.

Ваш вопрос также неясен, есть ли столбцы 10 или 11; возможно, используйте column_count = 11, если это необходимо.

person tripleee    schedule 21.10.2020