如何创建条件语句创建新数据框 (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()
如果您有任何其他问题,请告诉我。如果喜欢,请为我投票
我有一个 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
,你想保留 Adf_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()
如果您有任何其他问题,请告诉我。如果喜欢,请为我投票