使用Pandas系列值作为将值分配给另一个系列的索引

时间:2017-11-28 17:30:44

标签: python pandas

我正在尝试找到一个从列表中的元素中分配pandas系列的快捷方式。

我的代码:

import pandas as pd
df=pd.DataFrame([[1,2,2183],[1,4,2235],[2,3,6123],[3,4,4213]],columns=['month','staff','sales'])

goals=[1346,4456,4574]

df['goals']=goals[df['month']-1]

最后一行引发错误:TypeError: list indices must be integers or slices, not Series

所需的输出如下所示:

   month  staff  sales  goals
0      1      2   2183   1346
1      1      4   2235   1346
2      2      3   6123   4456
3      3      3   4213   4574

这是一般情况,将来,目标数组实际上可能是多维的。

2 个答案:

答案 0 :(得分:2)

    this->buttonA->Enabled = false;

答案 1 :(得分:1)

import numpy as np

首先,目标及其各自月份的价值字典:

goals_dict = dict(zip(np.arange(1,len(goals)+1), goals))

现在使用map

df['goals'] = df.month.map(goals_dict)