具有相同条件的多列上的.loc

2024-09-28 05:39:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用.loc选择行,但有一个条件,即多列必须满足:

# %%
a = (100, 50, 75, 100, 100, 50)
b = (100, 25, 15, 100, 75, 50)
c = (100, 75, 50, 100, 100, 25)

df = pd.DataFrame(zip(a, b, c), columns = ['A' , 'B' , 'C'])

col_lst = ('A' , 'B' , 'C')

这两行“应该”产生相同的输出:

df.loc[df[col_lst] == 100]
    Out: 
ValueError: Cannot index with multidimensional key

df.loc[(df['A'] == 100) & (df['B'] == 100) & (df['C'] == 100)]
    Out:
    A   B   C
0   100 100 100
3   100 100 100

无法将.loc与标签列表一起使用吗


Tags: columnsdataframedfindexwithcolzipout
1条回答
网友
1楼 · 发布于 2024-09-28 05:39:39

您需要将元组转换为列表并与axis=1中的all组合:

df[(df[list(col_lst)] == 100).all(1)]
#df.loc[(df[list(col_lst)] == 100).all(1)]

相关问题 更多 >

    热门问题