基于Python中的规则创建dataframe的新列

基于Python中的规则创建dataframe的新列,python,pandas,Python,Pandas,我有一个CSV文件,我正在努力解决我的熊猫问题。我用纯Python解决了这个问题,但我不能用Pandas 我的CSV文件有5列。我想使用其中一个的数据创建一个新的。该列的内容是[0,1,2,3,4,5]。因此,基于该值,我想执行以下操作: if value == 0: cost_new_column = 0 elif value == 1: cost_new_column = 1000 elif value == 2: cost_new_column = 2500 ... 在

我有一个CSV文件,我正在努力解决我的熊猫问题。我用纯Python解决了这个问题,但我不能用Pandas

我的CSV文件有5列。我想使用其中一个的数据创建一个新的。该列的内容是
[0,1,2,3,4,5]
。因此,基于该值,我想执行以下操作:

if value == 0:
   cost_new_column = 0
elif value == 1:
   cost_new_column = 1000
elif value == 2:
   cost_new_column = 2500
...

在纯Python中使用
for
if
来实现这一点很简单。如何在Pandas中执行此操作?

我将构建一个
目录
,说明如何
映射值并调用列,例如:

In [95]:
df = pd.DataFrame({'a':np.random.randint(0, 6, 20)})
df

Out[95]:
    a
0   5
1   3
2   3
3   5
4   5
5   4
6   0
7   5
8   1
9   0
10  5
11  2
12  4
13  5
14  2
15  5
16  0
17  5
18  4
19  4

In [96]:    
d = dict(zip(range(6), [0,1000,2500,4000,5000,8000]))
d

Out[96]:
{0: 0, 1: 1000, 2: 2500, 3: 4000, 4: 5000, 5: 8000}

In [98]:    
df['new_col'] = df['a'].map(d)
df

Out[98]:
    a  new_col
0   5     8000
1   3     4000
2   3     4000
3   5     8000
4   5     8000
5   4     5000
6   0        0
7   5     8000
8   1     1000
9   0        0
10  5     8000
11  2     2500
12  4     5000
13  5     8000
14  2     2500
15  5     8000
16  0        0
17  5     8000
18  4     5000
19  4     5000

谢谢这很有效。仍在学习熊猫:)由于SE限制,我将在9分钟内接受你的答案。如果条件不准确,你会怎么做,但看起来是:
if value<-10
if-10,我会使用
pd.cut
或使用几个
loc
语句或
np.where
so
np.where(值<-10,一些值,np。其中((值>=10)和(值<10),其他值,第三个值)
其中
是df中的某一列