Python 在数据帧上将行转换为独立列的操作

Python 在数据帧上将行转换为独立列的操作,python,python-3.x,numpy,dataframe,Python,Python 3.x,Numpy,Dataframe,我有一个包含以下结构的数据框 **Email MAC** email_1@mail.com AA:AA:AA:AA:A1 email_1@mail.com AA:AA:AA:AA:A5 email_1@mail.com PP:PP:PP:PP:P5 email_1@mail.com PP:PP:PP:PP:P6 email_2@mail.c

我有一个包含以下结构的数据框

    **Email             MAC**                   
    email_1@mail.com    AA:AA:AA:AA:A1      
    email_1@mail.com    AA:AA:AA:AA:A5      
    email_1@mail.com    PP:PP:PP:PP:P5
    email_1@mail.com    PP:PP:PP:PP:P6
    email_2@mail.com    AA:AA:AA:AA:A2
    email_2@mail.com    AA:AA:AA:AA:A9
我得把他们安顿下来

**Email             MAC1                    MAC2                        MAC3**
email_1@mail.com    AA:AA:AA:AA:A1      AA:AA:AA:AA:A5              PP:PP:PP:PP:P5
email_2@mail.com    AA:AA:AA:AA:A2      AA:AA:AA:AA:A9              Null
对应于电子邮件的值PP:PP:PP:PP:P6_1@mail.com已被丢弃,因为它超过了允许的列数(只允许前3个值)。

用于计数器列、筛选依据、重塑依据以及:

N=3
g=df.groupby('Email').cumcount().add(1)
df=df[g用于计数器列,过滤方式,重塑方式:

N=3
g=df.groupby('Email').cumcount().add(1)
df=df[g
N = 3
g = df.groupby('Email').cumcount().add(1)
df = df[g <= N]
df1 = df.set_index(['Email',g[g<=N]])['MAC'].unstack().add_prefix('MAC').reset_index()
print (df1)
              Email            MAC1            MAC2            MAC3
0  email_1@mail.com  AA:AA:AA:AA:A1  AA:AA:AA:AA:A5  PP:PP:PP:PP:P5
1  email_2@mail.com  AA:AA:AA:AA:A2  AA:AA:AA:AA:A9             NaN