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

#python #list #merge

#python #Список #слияние

Вопрос:

У меня есть несколько строк из файла 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, поэтому я борюсь. Я также не могу выполнять однострочные циклы for для объема того, что я делаю.

Комментарии:

1. Трудно понять, что вы пытаетесь спросить, без образца ваших входных данных. Не могли бы вы предоставить всего несколько строк фактического CSV, в идеале для получения ожидаемого результата, который вы уже показываете?

Ответ №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 при необходимости.