Python Loop Сквозь столбцы в фрейме данных - PullRequest
0 голосов
/ 16 ноября 2018
# 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.

...