如果满足条件,如何为列的行添加前缀

时间:2017-01-03 13:53:44

标签: python pandas

我有一个包含某些列和行的数据框,如果满足某些条件,我需要在其中一列中添加前缀

/

我需要根据Samples数据帧中的值为df.col2添加一个后缀,我尝试使用np.where,如下所示,

df = pd.DataFrame({'col':['a',0,2,3,5],'col2':['PFD_1','PFD_2','PFD_3','PFD_4','PFD_5']})
Samples=pd.DataFrame({'Sam':['PFD_1','PFD_5']})

whhich抛出错误,

df['col2'] = np.where(df.col2.isin(samples.Sam),'Yes' + df.col2, 'Non_'+ df.col2)

它不会返回我要求的内容,并且会抛出错误  最后数据框应该是什么样的,

TypeError: can only perform ops with scalar values

1 个答案:

答案 0 :(得分:2)

一旦我更改了“样本”的大小写,您的代码就能正常运行。 ..

import pandas as pd
import numpy as np
df = pd.DataFrame({'col':['a',0,2,3,5],'col2': ['PFD_1','PFD_2','PFD_3','PFD_4','PFD_5']})
Samples=pd.DataFrame({'Sam':['PFD_1','PFD_5']})
df['col2'] = np.where(df.col2.isin(Samples.Sam),'Yes' + df.col2, 'Non_'+ df.col2)
df['col2']

输出..

0     YesPFD_1
1    Non_PFD_2
2    Non_PFD_3
3    Non_PFD_4
4     YesPFD_5
Name: col2, dtype: object