Python 如何找到变量列表的索引位置?
我是python新手。我有一个数据帧df_a,我想找出df_a中的Col1与列表B中的任何变量匹配的位置,然后删除这些行。i、 e.删除以下示例中的第0、2和4行。实现这一目标的可能途径是什么?非常感谢Python 如何找到变量列表的索引位置?,python,pandas,dataframe,Python,Pandas,Dataframe,我是python新手。我有一个数据帧df_a,我想找出df_a中的Col1与列表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.索引进行筛选: idx = df_A.index
df_A = pd.DataFrame({'Col1': ['AA', 'BB', 'CC', 'DD', 'AA'], 'Col2': [1, 2, 3, 4, 5]})
list_B = ('AA','CC')
用于布尔掩码,并使用df_A.索引进行筛选
:
idx = df_A.index[df_A['Col1'].isin(list_B)]
print (idx)
Int64Index([0, 2, 4], dtype='int64')
如果需要列表
:
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
print (~df_A['Col1'].isin(list_B))
0 False
1 True
2 False
3 True
4 False
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 True
1 False
2 True
3 False
4 True
Name: Col1, dtype: bool
print (~df_A['Col1'].isin(list_B))
0 False
1 True
2 False
3 True
4 False
Name: Col1, dtype: bool