我有一个包含某些列和行的数据框,如果满足某些条件,我需要在其中一列中添加前缀
/
我需要根据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
答案 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