# format of input data
import pandas as pd
data = {'Name':['A', 'B', 'C', 'D'],
'T1':[1,34,29,42],
'T2':[2,0,19,0],
'T3':[0,10,19,1],
'T4':[0,21,40,100]}
df = pd.DataFrame(data)
print(df)
# get shape of df when Column A is >0
df[df['T1']>0].shape
# get shape of df when A and B are > 0
df[(df['T1']>0) & ((df['T2']>0))].shape
# get shape of df when A and (B > 0 or C > 0)
df[(df['T1']>0) & ((df['T2']>0) | (df['T3']>0))].shape
# get shape of df when A and (B > 0 or C > 0 or D > 0) >0
df[(df['T1']>0) & ((df['T2']>0) | (df['T3']>0) | (df['T4']>0))].shape
Проблема состоит в том, что существует множество столбцов, и мне нужно исправить столбец B и изменить B на C, а C на D, а затем повторно запустить код.
Мое мышление подходит к этой проблеме:
Шаг 1: Получить форму DF, когда столбец 1> 0 (сделать это отдельно по группам и размеру)
Шаг 2: Получить форму DF, когда столбец 1> 0 и столбец 2> 0
Шаг 3: На каждом шаге я хочу искать только следующие 10 столбцов. Поэтому итеративно увеличивайте столбцы (не знаете, как?), Чтобы включить предложение ИЛИ: Столбец 1> 0 и (Столбец 2> 0 ИЛИ Столбец 3> 0). Запускайте это, пока не достигнете столбца 10, и добавьте результаты в новый DF.