python - 将具有重复值的列移动到单行 Pandas

标签 python pandas

这是我的数据:

Identification  Req
    RCFD1797    Violet
    BHCKK085    Green
    RCFD1797    Green
    BHCKK085    Orange
    RCFD1797    Blue
    BHCKK085    Yellow
    BHCKK085    Red
    WRSS1797    Green
    WRSS1797    Violet
    WRSS1797    Blue
    RCON1797    Violet
    RCON1797    Green
    RCON1797    Blue
    RCON1797    Indigo
    BHDM1797    Violet
    BHDM1797    Green
    BHDM1797    Blue
    BHDM1797    Indigo

第一列填充了重复的 ID 号。因此,例如,“RCFD1797”出现了三次,每一行都有一个要求。这就是我需要的样子:

Identification  Req_1   Req_2   Req_3   Req_4
    RCFD1797    Violet  Green   Blue    
    BHCKK085    Green   Orange  Yellow  Red
    WRSS1797    Green   Violet  Blue    
    RCON1797    Violet  Green   Blue    Indigo
    BHDM1797    Violet  Green   Blue    Indigo

我使用 Pandas 导入我的 Excel 文件没问题,但我不知道如何定义我的数据框以生成上面的第二个表。有什么想法吗?

谢谢!

最佳答案

试试这个:

test
#Pasting only the partial table here

    Identification  Req
0   RCFD1797        Violet
1   BHCKK085        Green
2   RCFD1797        Green
3   BHCKK085        Orange
4   RCFD1797        Blue
5   BHCKK085        Yellow
6   BHCKK085        Red
..  ...             ...

my_df = test.groupby('Identification')['Req'].apply(list).apply(pd.Series)
my_df.columns = ['Req'+str(i) for i in my_df.columns]
my_df

                Req0    Req1    Req2    Req3
Identification              
BHCKK085        Green   Orange  Yellow  Red
BHDM1797        Violet  Green   Blue    Indigo
RCFD1797        Violet  Green   Blue    NaN
RCON1797        Violet  Green   Blue    Indigo
WRSS1797        Green   Violet  Blue    NaN

希望这对您有所帮助。

关于python - 将具有重复值的列移动到单行 Pandas,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51749143/

相关文章:

Python,当谈到 for 循环时,我经常重复自己,一定有更好的方法

Python 猴子修补由另一个模块执行的模块

python - 库存百分比变化的 Pandas Dataframe

python - Pandas pivot_table 日期

python - 不那么丑陋但可靠的方法来找到嵌入在字符串中的浮点值而不需要填充?

python - ContentHandler 未定义

Python 向量类

python - 使用 iloc 建立索引

python - 使用 Pandas 分配方法拆分字符串并分配给两列

python - 有没有办法从列表创建单列 pandas DataFrame 而不复制列表?