Python 只要其他列中的值匹配,就添加列值

Python 只要其他列中的值匹配,就添加列值,python,python-2.7,summarize,Python,Python 2.7,Summarize,只要另一列中的值相同,如何添加列值 e、 g.从以下列表中: Time Value 10 a 20 b 10 c 10 d 20 f 我希望得到以下结果: Time Value 10 (a+c+d) 20 (b+f) 从集合导入defaultdict dd=默认DICT(列表) L=[10,'a',20,'b',10,'c',10,'d',20,'f'] x=0 当x

只要另一列中的值相同,如何添加列值

e、 g.从以下列表中:

Time   Value
10       a
20       b
10       c
10       d
20       f
我希望得到以下结果:

Time      Value
10       (a+c+d)
20        (b+f)
从集合导入defaultdict
dd=默认DICT(列表)
L=[10,'a',20,'b',10,'c',10,'d',20,'f']
x=0
当x
结果是:

{10: ['a', 'c', 'd'], 20: ['b', 'f']}

如果您有一个数据帧,这里有一个解决方案:

import pandas as pd

data ='''\
Time   Value
10       a
20       b
10       c
10       d
20       f'''

df = pd.read_csv(pd.compat.StringIO(data), sep='\s+')

newdf = df.groupby('Time')['Value']\
        .apply(lambda x: '({})'.format('+'.join(x)))\
        .reset_index()

print(newdf)
返回:

   Time    Value
0    10  (a+c+d)
1    20    (b+f)
您可以使用,然后选择
元素(这样您就不会
求和
次数
),最后选择
求和

>>> d = {'Time': [10,20,10,10,20], 'Value': ['a', 'b', 'c', 'd', 'f']}
>>> df = pd.DataFrame(d)
>>> df
   Time Value
0    10     a
1    20     b
2    10     c
3    10     d
4    20     f
>>> df.groupby(['Time'])['Value'].apply(sum).reset_index()
   Time Value
0    10   acd
1    20    bf

欢迎来到StackOverflow!请看一下。这是数据帧吗?这到底是什么?您的数据在python中看起来如何?Joe Iddon,Anton vBR正在从文本文件导入。我有七列字符串数据,我需要5列根据发生的时间求和来分组。L是什么?我们在实际程序中从来没有这样的东西,我需要的是a,c和d的和,而不是aconcatenation@MusaNdiaye在这种情况下,它是
newdf=df.groupby('Time')['Value'].apply(sum).reset_index()
。然而,这闻起来像是一个骗局,一个相当基本的操作。乔·伊登也有答案。
   Time    Value
0    10  (a+c+d)
1    20    (b+f)
>>> d = {'Time': [10,20,10,10,20], 'Value': ['a', 'b', 'c', 'd', 'f']}
>>> df = pd.DataFrame(d)
>>> df
   Time Value
0    10     a
1    20     b
2    10     c
3    10     d
4    20     f
>>> df.groupby(['Time'])['Value'].apply(sum).reset_index()
   Time Value
0    10   acd
1    20    bf