如何根据特定条件从数据帧中选择列?

2024-09-28 03:12:28 发布

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

我有一个pandas数据框架,如果P_BUYER列有一个大于97的条目,而其他条目小于97,我想为一个特定变量创建一个列列表。例如,下面应该创建一个包含TENRACTADV_INC的列表。如果P_BUYER的值大于或等于97,则该特定块与T平行的值应保存在列表中(例如,在下面的示例中,我们有以下与T平行的值:(TENRCT,ADVNTG_MARITAL,NEWLSGOLFIN,ADV_INC)

Input :

T                     TENRCT          P_NONBUY(%)   P_BUYER(%)  INDEX   PBIN    NEWBIN
N (1,2,3) = Renter    N (1,2,3) = Renter    35.88   0.1           33    8        2
Q <0> = Unknown      Q <0> = Unknown        3.26    0.1           36    8        2
Q1 <4> = Owner       Q <4> = Owner          60.86   99.8          143   5        1          
E2          
T                ADVNTG_MARITAL      P_NONBUY(%)    P_BUYER(%)  INDEX   PBIN    NEWBIN
Q2<1> = 1+Marrd  Q<1> = 1+Marrd   52.91         78.98       149      5      2
Q<2> = 1+Sngl        Q<2> = 1+Sngl    45.23         17.6        39       8      3
Q1<3> = Mrrd_Sngl   Q<3> = Mrrd_Sngl 1.87           3.42        183      4      1
E3                      
T                  ADV_INC           P_NONBUY(%)    P_BUYER(%)  INDEX   PBIN    NEWBIN
N1('1','Y') = Yes   N('1','Y') = Yes     3.26       1.2         182     4       1
N('0','-1')= No N('0','-1')= No      96.74      98.8        97      7       2
E2                  

输出:

Finallist=['TENRACT','ADV_INC']

Tags: 列表index条目buyerinc平行advsngl
1条回答
网友
1楼 · 发布于 2024-09-28 03:12:28

您可以这样做:

# In your code, you have 3 dataframes E1,E2,E3, iterate over them
output = []
for df in [E1,E2,E3]:
    # Filter you dataframe
    df = df[df['P_BUYER(%)'] >= 97 ]
    if not df.empty:
       cols = df.columns.values.tolist()
       # Find index of 'T' column
       t_index = cols.index('T')
       # You desired parallel column will be at t_index+1
       output.append(cols[t_index+1])
print(output)

相关问题 更多 >

    热门问题