所以我有一个熊猫df
,其中包含一堆0和1。
并且我已经有想要的特定行
我想显示该行的值为1的列。就像home_team_Belgium
的值为1
一样。
我希望它看起来像:
row# home_team_Belgium home_team_something
29 1 1
我可以使用哪些命令?
答案 0 :(得分:0)
您可以做类似的事情
r = df[df.index == 29]
cols_to_keep = r.iloc[0].astype(bool).tolist()
r.iloc[:, cols_to_keep]
答案 1 :(得分:0)
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')
随机DataFrame输入:
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