Как отобразить точные столбцы, которые содержат определенное значение в этой строке - PullRequest
0 голосов
/ 05 июля 2018

Итак, у меня есть панда df, которая содержит набор из 0 и 1.

и у меня уже есть конкретная строка, которую я хочу

enter image description here

Я хочу отобразить столбцы этой строки со значением 1. Например, как home_team_Belgium имеет значение 1.

Я хочу, чтобы это выглядело так:

row#  home_team_Belgium  home_team_something
29            1                  1            

Какие команды я могу использовать?

Ответы [ 2 ]

0 голосов
/ 05 июля 2018
row = df.loc[29]
row = row[row == 1]
row = row.to_frame().T
row.columns.name = 'row#'
print(row)

Как правило, если вы хотите выполнить итерацию по всем строкам и распечатать столбцы, в каждой строке содержится 1:

import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.choice([0, 1], size=(3, 5)), columns=list('abcde'))
# To iterate over all rows. You can also select specific rows with `index`
for index, row in df.iterrows():
    # To select target cols you want in each row.
    output = row[row == 1]
    # To print each result row horizontally.
    output = output.to_frame().T
    # Make header row exactly in your expected format.
    output.columns.name = 'row#'
    print(output, end='\n\n')

Случайный ввод данных в фрейме:

   a  b  c  d  e
0  1  0  0  1  1
1  0  0  1  0  0
2  0  1  0  0  0

Печатная продукция:

row#  a  d  e
0     1  1  1

row#  c
1     1

row#  b
2     1
0 голосов
/ 05 июля 2018

Вы могли бы сделать что-то вроде

r = df[df.index == 29]
cols_to_keep = r.iloc[0].astype(bool).tolist()
r.iloc[:, cols_to_keep]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...