Python 只要其他列中的值匹配,就添加列值
只要另一列中的值相同,如何添加列值 e、 g.从以下列表中: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
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