大熊猫:根据其他数据框创建数据框列

Petetheat

如果我有两个像这样的两个数据框:

import pandas as pd

df1 = pd.DataFrame({'Type':list('AABAC')})
df2 = pd.DataFrame({'Type':list('ABCDEF'), 'Value':[1,2,3,4,5,6]})

  Type
0    A
1    A
2    B
3    A
4    C

  Type  Value
0    A      1
1    B      2
2    C      3
3    D      4
4    E      5
5    F      6

我想基于df2中的值在d​​f1中添加一列。df2仅包含唯一值,而df1每个值都有多个条目。因此,生成的df1应该如下所示:

  Type Value
0    A     1
1    A     1
2    B     2
3    A     1
4    C     3

我的实际数据帧df1很长,因此我需要一些有效的东西(我在循环中尝试过,但这要花很多时间)。

安东·普罗托波波夫(Anton Protopopov)

您可以dict从您的df2withto_dict方法创建,然后将map结果生成到Typedf1

replace_dict = dict(df2.to_dict('split')['data'])

In [50]: replace_dict
Out[50]: {'A': 1, 'B': 2, 'C': 3, 'D': 4, 'E': 5, 'F': 6}

df1['Value'] = df1['Type'].map(replace_dict)

In [52]: df1
Out[52]:
  Type  Value
0    A      1
1    A      1
2    B      2
3    A      1
4    C      3

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章