我试图根据一列的值是否属于序列的一部分来过滤Dataframe的行,这样:
pack_data_clean=pack_data_clean[pack_data_clean["actual_box_barcode"].isin(ref_list)==True]
在pack_data_clean是要过滤的数据帧的地方,arual_box_barcode对该列进行检查,并用要保留在数据帧中的值来ref_list系列。
但是ref_list不是具有值的常规序列,而是由序列组成的序列,让我们来看一下:
ref_list=["BG1", "BG2", "BG3", "BG4", A1_refs, A2_refs, A3_refs, C1_refs, C2_refs, C3_refs, C4_refs, C5_refs
, E0_refs, E1_refs, E3_refs, E4_refs, E6_refs, E7_refs, E36_refs]
其中A1_refs例如是:
A1_refs=["EEC", "ENC", "EZC"]
现在我的代码仅过滤“ BG1”,“ BG2”,“ BG3”,“ BG4”的行,但我也希望过滤“ EEC”,“ ENC”,“ EZC”等上。
您能帮助我相应地创建此过滤器吗? 谢谢, 爱德华多
答案 0 :(得分:1)
如果它是常规对象和序列的列表,则需要将其转换为一致的序列格式。这可能会有所帮助:
ref_list = pd.Series(i for i in my_list if type(i) != pd.Series).append(list(j for j in my_list if type(j) == pd.Series))
如果它已经是系列系列,请在使用之前尝试展平系列,例如:
ref_list = ref_list.ravel()