根据列的值将列添加到数据框

时间:2016-12-24 22:33:32

标签: python pandas merge

我正在尝试根据与具有不同长度的数据框匹配的现有列值添加列。

from pandas import DataFrame

    a = DataFrame([['a', '1'], ['b', 2], ['c', 3]], columns=['Letters', 'Numbers'])
    b = DataFrame([['a', '2001'], ['b', '2002'], ['c', '2003'], ['d', '2004']], columns=['Letters', 'Years'])

如何向名为 a 添加一列,其中信件的年份为 a b 匹配。

期望的输出:

df = DataFrame([['a', '1', '2001'], ['b', 2, '2002'], ['c', 3, '2003']], columns=['Letters', 'Numbers', 'Years'])

1 个答案:

答案 0 :(得分:1)

使用merge,如果DataFrame中的连接列相同,则可省略参数on,默认情况下也为inner加入,因此参数{{1}也省略了:

how
print (pd.merge(a,b))
  Letters Numbers Years
0       a       1  2001
1       b       2  2002
2       c       3  2003