python合并具有相同类别的文本行

时间:2018-03-16 03:44:05

标签: python pandas numpy

我是python的新手,任何人都可以帮助我。

例如,我有一个

的数据框
data = pd.DataFrame({'a': [1,1,2,2,2,3], 'b': [12,22,23,34,44,55], 'c'['a','','','','c',''], 'd':['','b','b','a','a','']})

我想总结一个并忽略b中的不同

data = ({'a':[1,2,3],'c':['a','c',''],'d':['b','baa','']})

我该怎么做?

2 个答案:

答案 0 :(得分:0)

你的问题有点难以理解,但如果我猜对了,这可以解决。

data = {'a': [1,1,2,2,2,3], 'b': [12,22,23,34,44,55], 'c':['a','','','','c',''], 'd':['','b','b','a','a','']}

new_data = {k: list(set(v)) for k, v in data.items()}

{'a': [1, 2, 3],
 'b': [34, 12, 44, 55, 22, 23],
 'c': ['', 'a', 'c'],
 'd': ['', 'a', 'b']}

答案 1 :(得分:0)

您需要groupby + agg

data.groupby('a').agg({'b':'sum','c' : lambda x : ''.join(x),'d' : lambda x : ''.join(x)}).reset_index()
Out[54]: 
   a    d  c    b
0  1    b  a   34
1  2  baa  c  101
2  3           55