Цикл по строке, а затем по столбцу с использованием панд - PullRequest
0 голосов
/ 09 апреля 2019

Мне нужно цикл по строке (в столбце), а затем по оставшимся столбцам в наборе данных.

Я уже пытался использовать iterows (), iloc () и iat ().

import pandas as pd

# Two-dimensional data frame
table = {'A' : [0.1, -0.2, 0.3, -0.4],'B' : [-0.2, 0.4, 0.6, 0.8], 'C' : [0.3, -0.6, -0.9, -1.3]}

# Setting index to be new column
df = pd.DataFrame(table, index = ['W','X','Y','Z'])

column_list = list(df.columns)
total_columns = len(column_list)

total_rows = len(df.index)

column_num = 1
column = column_list[column_num]


winners = []
losers = []
zero = []   


for col_num in df: 
    row_num = 1
    for row_num in df:
        if (df.iloc[row_num][column]) > 0:
            winners.append(df.iloc[row_num][column])

        elif (df.iloc[row_num][column]) < 0:
            losers.append(df.iloc[row_num][column])

        else:
            zero.append(df.iloc[row_num][column])

        row_num = row_num + 1

1 Ответ

1 голос
/ 09 апреля 2019

Вы можете использовать iterrows, и сделать это в понимании списка.

In [11]: [x for _, col in df.iteritems() for x in col]
Out[11]: [0.1, 0.2, 0.3, 0.4, 0.2, 0.4, 0.6, 0.8, 0.3, 0.6, 0.9, 1.3]

или вы можете сгладить массив NumPy:

In [12]: list(df.values.T.flatten())
Out[12]: [0.1, 0.2, 0.3, 0.4, 0.2, 0.4, 0.6, 0.8, 0.3, 0.6, 0.9, 1.3]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...