使用 Pandas 从同名列中提取数据

社会演员多 python 650

原文标题Extract data from columns with same name using Pandas

我有一个数据框:

Accepted    Accepted    Accepted    Reject    Accepted    Reject
ABC         IJK         JKL         XYJ       LMN         UIO
BCD         PQR         EFG         YVG       GHIJ        PLK

并希望将其转换为两个数据帧;仅“接受”列之一,其他“拒绝”列

df1-

Accepted    Accepted    Accepted    Accepted
ABC         IJK         JKL         LMN     
BCD         PQR         EFG         GHIJ    

df2-

Reject    Reject
XYJ       UIO
YVG       PLK 

试过了

df1=df["Accepted"]

df2=df["Reject"]

这只给出与该名称匹配的第一列。

原文链接:https://stackoverflow.com//questions/71477671/extract-data-from-columns-with-same-name-using-pandas

回复

我来回复
  • jezrael的头像
    jezrael 评论

    如果选择一列同名,则选择 DataFrame 中所有同名的列:

    df1 = df['Accepted']
    df2 = df['Reject']
    

    然后是可能的去重列:

    df1.columns = [f'{x}_{i}' for i, x in enumerate(df1.columns, 1)]
    df2.columns = [f'{x}_{i}' for i, x in enumerate(df2.columns, 1)]
    

    编辑:如果只获取第一个列名,则意味着没有重复的列名,因此可以使用DataFrame.filter

    df1 = df.filter(like='Accepted')
    df2 = df.filter(like='Reject')
    
    2年前 0条评论