如何合并数据框中的列值? [重复]

问题描述 投票:0回答:1
    property_duplicate_map = {}
    for index, row in df.iterrows():
        property_value = row[property]
        name = row['name']
        if name in property_duplicate_map:
            new_value = property_value + '|' + property_duplicate_map[name]
            property_duplicate_map[name] = new_value
            df = df.drop([index])
        else:
            property_duplicate_map[name] = property_value
        df.loc[index, property] = property_duplicate_map[name]

我的数据框可能有如下重复项:

Name Type Alias

aa   b  m
aa   b  n

我上面的代码应该将两行合并为一行,如下所示:

aa  b m|n

问题似乎出在df.drop(index)。例如,如果它删除了'aa b m'的行索引'12',则该行将消失,并且以下df.loc [index,property] = ...不起作用。

应该有一种方法可以做到这一点。如何解决?

pandas dataframe
1个回答
0
投票
您可以简单地做到这一点:

In [923]: df Out[923]: Name Type Alias 0 aa b m 1 aa b n In [924]: df.groupby(['Name','Type'])['Alias'].apply('|'.join) Out[924]: Name Type aa b m|n Name: Alias, dtype: object

© www.soinside.com 2019 - 2024. All rights reserved.