groupby regex跨行和聚合在pandas中

时间:2017-03-06 19:47:49

标签: python pandas grouping

是否可以应用对pandas中的连续行进行操作的函数,并根据输出聚合数据帧?

示例:

我想在此数据框的连接列中应用正则表达式:

List<SomeObject> list = new List<SomeObject>();
MyList<SomeObject> myList = list;

输出:

a = pd.DataFrame([['a', 0],['b',0],['c',0], [' ', 0], ['1', 1], ['2', 1], ['3',1], [' ', 0], ['r',0], ['.', 0], [' ', 0], ['a',0]])

现在我想在连接的文本数据上使用 0 1 0 a 0 1 b 0 2 c 0 3 0 4 1 1 5 2 1 6 3 1 7 0 8 r 0 9 . 0 10 0 11 a 0 组合第0列:

re.split()

给出了这个:

a = pd.DataFrame(re.split(r'([\s\.])',''.join(a[0])))

但是,它会丢失其他列。

如何在执行此操作时维护DataFrame?

此处的其他列可以作为连接字符串中的平均值或最常见元素。为了提供最终输出:

     0
0  abc
1     
2  123
3     
4    r
5    .
6     
7     
8    a

此类分组是否有良好的pandas功能?

1 个答案:

答案 0 :(得分:2)

您的解决方案有效。唯一的故障是您将正则表达式的输出分配给a而不是[0]

a[0] = pd.DataFrame(re.split(r'([\s\.])',''.join(a[0])))
a.dropna() 

会给你

    0   1
0   abc 0
1       0
2   123 0
3       0
4   r   1
5   .   1
6       1
7       0
8   a   0