我有两个数据帧:
pd.DataFrame(data={'col1': ['a', 'b', 'a', 'a', 'b'], 'col2': ['c', 'c', 'd', 'd', 'c'], 'col3': [1, 2, 3, 4, 5, 1]})
col1 col2 col3
0 a c 1
1 b c 2
2 a d 3
3 a d 4
4 b c 5
5 h i 1
pd.DataFrame(data={'col1': ['a', 'b', 'a', 'f'], 'col2': ['c', 'c', 'd', 'k'], 'col3': [12, 23, 45, 78]})
col1 col2 col3
0 a c 12
1 b c 23
2 a d 45
3 f k 78
并且我想根据col1和col2的值在第一个中构建一个新列,可以在第二个中找到。这就是新的:
pd.DataFrame(data={'col1': ['a', 'b', 'a', 'a', 'b'], 'col2': ['c', 'c', 'd', 'd', 'c'], 'col3': [1, 2, 3, 4, 5],'col4' : [12, 23, 45, 45, 23]})
col1 col2 col3 col4
0 a c 1 12
1 b c 2 23
2 a d 3 45
3 a d 4 45
4 b c 5 23
5 h i 1 NaN
我怎么能这样做?
请你注意:)
编辑:建议在这个主题qazxsw大便中寻找答案,但这不是同一个问题。
在这里,不仅ID不存在,因为它在col1和col2中被分割,但最重要的是,虽然在第二个数据帧中是唯一的,但它在第一个数据帧中并不是唯一的。这就是为什么我认为合并和连接都不能解决这个问题。
编辑2:此外,df1中的耦合col1和col2可能不存在于df2中,在这种情况下,在col4中等待NaN,并且在df1中可能不需要耦合df2的col1和col2。为了说明这些情况,我在df1和df2中添加了一些行,以显示在最坏的情况下它是如何形成的