删除重复值并计算值

时间:2018-12-16 03:35:37

标签: python pandas

我提取了一个国家/地区列表,我正在尝试处理数据以生成报告。我使用“ value_counts()”来计算国家/地区的元素。结果显示如下。

>>>country_counts
America 10
America England 1
England America 2
Canada America Hongkong 1
Korea 3

但是,有些重复项无法使用“ drop_duplicate”来减少它们。例如,这两个值“ America England”和“ England America”相同,但顺序不同。我只想保留其中一个并在另一列中加起来。

就像以下内容一样,将“ England America”更改为“ America England”,并将它们全部加起来(2 + 1 = 3):

America 10
America England 3
Canada America Hongkong 1
Korea 3

谢谢。

1 个答案:

答案 0 :(得分:0)

您可以将它们分隔在空格上,然后对列表进行排序。然后,我将 liststr,以便可以在groupby中使用。

data = [
        ['America',10],
        ['America England', 1],
        ['England America', 2],
        ['Canada America Hongkong',1],
        ['Korea', 3]
       ]

df = pd.DataFrame(data,columns=['a','b'])
df['a'] = df['a'].apply(lambda x:str(sorted(x.split(' '))))

print(df.groupby('a').sum())

输出

                                    b
a                                    
['America', 'Canada', 'Hongkong']   1
['America', 'England']              3
['America']                        10
['Korea']                           3