如何创建条件语句创建新数据框 (Pandas)

How to make a conditional statement creating new dataframe (Pandas)

我有一个 MultiIndex 数据框,我想为其创建一个条件语句,如果列 "F" 中的值 > 0,则在每个特定的列组中说 "A",然后,整个组(A列)应该被复制到一个新的数据框(newdf)进行进一步处理。

下面是两行 df 的样子:

  A         B            C          D           E      F   G    H 

 A8374D  []KLJEFSIJSE  some;text   more,text   12.4   4.6   13  X5

         []BKFLKJLJLK  text;some  other,stuff  65.0   6.5   11  Y0      

...

这是我目前所拥有的(不起作用)

for row in df['A']:
   newdf = df['F'].where(df['F'] > 0)
print(newdf)

错误信息:

KeyError: 'A'

我想 A 是您的多重索引之一。我想让 A 不作为索引

df = df.reset_index()

然后我想如果 A 组中 F 的 任何 > 0

,你想保留 A
df_new = df.groupby('A').apply(lambda x: (x.F > 0).any()).to_frame('WANT').reset_index()

df_final = df[df.A.isin(df_new.loc[df_new.WANT == 1,'A'])]

如果要确保ALL组A内的F值>0,则改为

(x.F > 0).all()

如果您有任何其他问题,请告诉我。如果喜欢,请为我投票