熊猫-在2个不同级别进行分组

时间:2020-04-15 16:06:06

标签: python pandas pandas-groupby data-processing

我正在尝试在数据帧上应用double groupby,以便将两列的元素收集到两个不同列中的列表中。

我有一个数据框:

stack = (
    pd.DataFrame([
        ['source1', 'text...', 12.0],
        ['source1', 'text...', 100.0],
        ['source2', 'text...', 12.0],
        ['source1', 'text...', 24.0],
        ['source2', 'text...', 2.0],
        ['source3', 'text...', 48.0]],
        columns=['source_id', 'content', 'eng']))

到目前为止,我所做的是按照“ source_id”和“ eng”列进行分组,以便将它们全部包含在列表中:

stack1 = (
    stack.groupby('source_id')['eng']
    .apply(np.array)
    .to_frame('eng')
    .reset_index()
)

哪个给: enter image description here

然后,我正在执行相同的过程以将“内容”列收集到列表中:

stack2 = (
    stack.groupby('source_id')['content']
    .apply(np.array)
    .to_frame('content')
    .reset_index()
)

哪个给: enter image description here

我正在尝试将两个动作都合并为一个操作,以实现如下所示的数据帧:

final = (
    pd.DataFrame([
        ['source1', ['text...', 'text...', 'text...'], [12.0, 100.0, 24.0]],
        ['source2', ['text...', 'text...'], [12.0, 2.0]],
        ['source3', ['text...'], [48.0]]],
        columns=['source_id', 'content', 'eng']))

您给这个: enter image description here

我的主要目标是能够将“内容”元素映射到“ eng”。订单必须保持固定。对于将原始顺序保留在列表中,我不确定拆分此操作是否安全。

0 个答案:

没有答案