使用组名作为输入分组赋值

问题描述 投票:0回答:2

这可能很容易,但我无法理解。

我有两个数据帧

import numpy as np
import pandas 

da0 = pandas.DataFrame({'A' : ['foo', 'bar', 'foo', 'bar',
                               'foo', 'bar', 'foo', 'foo'],
                        'B' : ['two', 'one', 'two', 'three',
                               'three', 'one', 'two', 'two'],
                        'C' : np.random.randn(8),
                        'D' : np.random.randn(8)
                       })

da1 = pandas.DataFrame({'E' : ['one', 'two', 'three'],
                        'F' : ['alpha', 'beta', 'gamma']
                       })

我想在da0上添加一个新列。该列应该采用'F'da1列的值,该值对应于'E'中的da1'B'中的da0之间的匹配。在示例中,结果应该是

da0 = pandas.DataFrame({'A' : ['foo', 'bar', 'foo', 'bar',
                               'foo', 'bar', 'foo', 'foo'],
                        'B' : ['two', 'one', 'two', 'three',
                               'three', 'one', 'two', 'two'],
                        'C' : np.random.randn(8),
                        'D' : np.random.randn(8),
                        'new': ['beta', 'alpha', 'beta', 'gamma', 'gamma', 
                                'alpha', 'beta', 'beta'] 
                       })

我尝试用da0'B'进行分组然后使用transform但后来我不知道如何在自定义函数中使用该组的名称。

我该怎么做?

python pandas
2个回答
© www.soinside.com 2019 - 2024. All rights reserved.