Pandas 如何在dataframe中合并列值?

Pandas 如何在dataframe中合并列值?,pandas,dataframe,Pandas,Dataframe,我的数据帧可能有如下重复项: 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_d

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

    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
问题似乎在于df.drop(索引)。例如,如果它删除“aa b m”的行索引“12”,则该行将消失,并且以下df.loc[index,property]=。。。不起作用


应该有办法做到这一点。如何修复它?

您只需执行以下操作:

aa  b m|n

理想情况下,我不应该显式使用列名['name','Type'],因为不同的dataframe的列计数可能不同。只有“名称”和“别名”列是已知的。
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