我有一个如下的熊猫数据框。我想通过迭代名为“fields_list”的列表来创建列列表,并分离出以“fields_list”中的列表结尾的列表
import pandas as pd
import numpy as np
import sys
df = pd.DataFrame({'a_balance': [3,4,5,6], 'b_balance': [5,1,1,1]})
df['ah_balance'] = 0
df['a_agg_balance'] = 0
df['b_agg_balance'] = 0
df
a_balance b_balance ah_balance a_agg_balance b_agg_balance
3 5 0 0 0
4 1 0 0 0
5 1 0 0 0
6 1 0 0 0
fields_list = [ ['<val>','_balance'],['<val_class>','_agg_balance']]
fields_list
[['<val>', '_balance'], ['<val_class>', '_agg_balance']]
for i,field in fields_list:
df_final= [col for col in df if col.endswith(field)]
print("df_final" ,df_final)
我尝试了上面的代码,但是当它迭代 fields_list 的第一个元素(即'','_balance')时,它还包括以'_agg_balance'结尾的元素,因此我得到以下结果
df_final ['a_balance', 'b_balance', 'ah_balance', 'a_agg_balance', 'b_agg_balance']
df_final ['a_agg_balance', 'b_agg_balance']
我的预期输出是
df_final ['a_balance', 'b_balance', 'ah_balance']
df_final ['a_agg_balance', 'b_agg_balance']