2024-04-19 10:13:25 发布
网友
我对Python还不熟悉。我有一个数据帧df\u a,我想找出df\u a中的Col1与list\u B中的任何变量匹配的位置,然后删除这些行。i、 e.删除下例中的第0、2和4行。实现这一目标的可能途径是什么?非常感谢。你知道吗
df_A = pd.DataFrame({'Col1': ['AA', 'BB', 'CC', 'DD', 'AA'], 'Col2': [1, 2, 3, 4, 5]}) list_B = ('AA','CC')
使用^{}作为布尔掩码,并通过^{}和df_A.index进行过滤:
df_A.index
idx = df_A.index[df_A['Col1'].isin(list_B)] print (idx) Int64Index([0, 2, 4], dtype='int64')
如果需要list:
list
idx = df_A.index[df_A['Col1'].isin(list_B)].tolist() print (idx) [0, 2, 4]
细节:
print (df_A['Col1'].isin(list_B)) 0 True 1 False 2 True 3 False 4 True Name: Col1, dtype: bool
按列表筛选所有行:
df1 = df_A[df_A['Col1'].isin(list_B)] print (df1) Col1 Col2 0 AA 1 2 CC 3 4 AA 5
对于按列表筛选出的值,按~反转布尔掩码:
~
df2 = df_A[~df_A['Col1'].isin(list_B)] print (df2) Col1 Col2 1 BB 2 3 DD 4
print (~df_A['Col1'].isin(list_B)) 0 False 1 True 2 False 3 True 4 False Name: Col1, dtype: bool
使用^{} 作为布尔掩码,并通过^{} 和
df_A.index
进行过滤:如果需要
list
:细节:
按列表筛选所有行:
对于按列表筛选出的值,按
~
反转布尔掩码:细节:
相关问题 更多 >
编程相关推荐