Python pandas函数根据另一行中的重复值将不同的值合并为一行

问题描述 投票:0回答:2

抱歉,我什至不知道如何标题/描述我遇到的问题,所以请耐心等待。我有以下代码:

import pandas as pd
data = {'Invoice Number':[1279581, 1279581,1229422, 1229422, 1229422],
        'Project Key':[263736, 263736, 259661, 259661, 259661],
        'Project Type': ['Visibility', 'Culture', 'Spend', 'Visibility', 'Culture']}
df= pd.DataFrame(data)

enter image description here

如何获得将发票编号基本分组的输出,以使每个发票编号仅一行,并将多个项目类型(每1张发票)合并为1行?输出的代码和输出如下。非常感谢。

import pandas as pd
data = {'Invoice Number':[1279581,1229422],
        'Project Key':[263736, 259661],
        'Project Type': ['Visibility_Culture', 'Spend_Visibility_Culture']
}
output = pd.DataFrame(data)
output

enter image description here

python pandas
2个回答
1
投票
>>> (df
     .groupby(['Invoice Number', 'Project Key'])['Project Type']
     .apply(lambda x: '_'.join(x))
     .reset_index()
    )
   Invoice Number  Project Key              Project Type
0         1229422       259661  Spend_Visibility_Culture
1         1279581       263736        Visibility_Culture
© www.soinside.com 2019 - 2024. All rights reserved.