Переберите более 4 pandas столбцов фрейма данных и сохраните их в 4 списках, один для l oop вместо 4 для циклов - PullRequest
0 голосов
/ 18 марта 2020

Я сейчас работаю над структурой pandas в Python. Я написал функцию, которая извлекает данные из Pandas фрейма данных и сохраняет их в списках. Код работает, но я чувствую, что есть часть, которую я мог бы написать в одной для l oop вместо четырех для циклов. Я приведу вам пример ниже. Идея этой части кода состоит в том, чтобы выделить четыре столбца из фрейма данных pandas в четыре списка. Я сделал это с 4 отдельными циклами for, но я хочу иметь один l oop, который делает это.

col1,col1,col1,col1 = [],[],[],[]

for j in abc['col1']:
    col1.append(j)

for k in abc['col2']:
    col2.append(k)

for l in abc['col3']:
    col3.append(l) 

for n in abc['col4']:
    col4.append(n)

И моя идея написать один для l oop, который выполняет весь код. Я пытался сделать что-то подобное, но это не сработало.

col1,col1,col1,col1 = [],[],[],[]

for j,k,l,n in abc[['col1','col2','col3','col4']]
    col1.append(j)
    col2.append(k)
    col3.append(l) 
    col4.append(n)

Можете ли вы помочь мне с этой идеей свернуть четыре петли в одну? Буду признателен за вашу помощь!

Ответы [ 3 ]

2 голосов
/ 18 марта 2020

Вам не нужно использовать циклы вообще; Вы можете просто конвертировать каждый столбец в список напрямую.

list_1 = df["col"]to_list()

Посмотрите на этот предыдущий вопрос .

1 голос
/ 18 марта 2020

Возможно, проще использовать pandas.values, а затем numpy.ndarray.to_list():

col = ['col1','col2','col3']
data = []*len(col)
for i in range(len(col)):
   data[i] = df[col(i)].values.to_list()

1 голос
/ 18 марта 2020

Работа с панелью данных panda как со списком обычно работает, но очень плохо влияет на производительность. Я хотел бы рассмотреть возможность использования функции iterrows (). Это будет работать как в следующем примере:

col1,col2,col3,col4 = [],[],[],[]

for index, row in df.iterrows():
    col1.append(row['col1'])
    col2.append(row['col2'])
    col3.append(row['col3'])
    col4.append(row['col4'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...