在pandas中選擇值為1的列名

2024-05-12 22:32:57 发布

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

我有这个数据帧:

    Course_2013     AP  Advanced    Vocational  Basic   ESL 
0   7th Math Enrich  0    1             0         0      0   
1   8th Math Enrich  0    1             0         0      0   
2   8th Science Enr  0    1             0         0      0   
3   Accounting I     0    0             0         1      0               
4   Accounting II    0    0             0         0      1   

我需要创建名为“category”的新列,该列包含每行中包含1的列的列名:

    Course_2013     AP  Advanced    Vocational  Basic   ESL category
0   7th Math Enrich  0    1             0         0      0   Advanced
1   8th Math Enrich  0    1             0         0      0   Advanced
2   8th Science Enr  0    1             0         0      0   Advanced
3   Accounting I     0    0             0         1      0   Basic              
4   Accounting II    0    0             0         0      1   ESL

Tags: 数据basicmathaccountingadvancediiapscience
1条回答
网友
1楼 · 发布于 2024-05-12 22:32:57

让我们使用applyidxmax

df['category'] = df.iloc[:,1:].apply(lambda x: x.idxmax(), axis=1)

输出:

       Course_2013  AP  Advanced  Vocational  Basic  ESL  category
0  7th Math Enrich   0         1           0      0    0  Advanced
1  8th Math Enrich   0         1           0      0    0  Advanced
2  8th Science Enr   0         1           0      0    0  Advanced
3     Accounting I   0         0           0      1    0     Basic
4    Accounting II   0         0           0      0    1       ESL

相关问题 更多 >