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