根据另一个数据框中的值生成新列

时间:2015-08-10 11:48:51

标签: python pandas

我的数据框中包含一些个人信息:

    df = pd.DataFrame({'person':range(5), 'birth_year':range(1980, 1985)})
    df

它看起来像这样:

        birth_year  person
    0       1980         0
    1       1981         1
    2       1982         2
    3       1983         3
    4       1984         4

另一个包含年度增长数据的数据框:

    growth = pd.DataFrame({'year':range(1980,2000),'growth_rate':np.random.randn(20)})
    growth

所以它会是这样的:

        growth_rate year
    0   -0.474861   1980
    1   -0.898530   1981
    2   -0.730102   1982
    3   -0.231560   1983
    4   -0.023014   1984
    ...

现在我想在df中添加一个新列,这是每个人在10岁时的增长率,因此对于0人来说,这将是1990年,对于人2来说,它将是年1991年等。增长率数据来自数据框growth。结果数据框应如下所示:

        birth_year  person         growth_10
    0       1980         0          value_1990
    1       1981         1          value_1991
    2       1982         2          value_1992
    3       1983         3          value_1993
    4       1984         4          value_1994

我该如何管理?

PS:列的顺序似乎是按字母顺序排列的,比如人之前的birth_year和年前的growth_rate,不知道如何解决这个问题。

1 个答案:

答案 0 :(得分:3)

您可以在临时列上致电map并将其他df double传递给我,并将索引设置为列'年份',这将执行查找:

growth