这可能是一个简单的问题,但我想不出来
我有两个数据帧
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
中添加一个新列。此列应该从da1
中的'F'
列中获取与da1
中的'E'
和da0
中的'B'
之间的匹配对应的值。在本例中,结果应为
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']
})
我试着用'B'
对da0
进行分组,然后使用transform,但是我不知道如何在自定义函数中使用组的名称
我该怎么做
您可以使用
replace
这是一种方式:
结果
解释
set_index
确保来自da0['B']
的值与da1['E']
对齐李>相关问题 更多 >
编程相关推荐