制作数据框:
df = pd.DataFrame({'A': [0, 1, 2, 3, 4], 'B': [5, 6, 7, 8, 9], 'C': ['a', 'b', 'c', 'd', 'e']})
看起来像:
A B C
0 0 5 a
1 1 6 b
2 2 7 c
3 3 8 d
4 4 9 e
新建一列:
df["coolness"] = "no"
看起来像:
A B C coolness
0 0 5 a no
1 1 6 b no
2 2 7 c no
3 3 8 d no
4 4 9 e no
需要在“ coolness”列中将某些行替换为“ yes”。
尝试:
df["coolness"].replace([0, 1, 3], "yes")
但是不起作用。给出:
0 no
1 no
2 no
3 no
4 no
与此同时:
df.replace([0, 1, 3], "yes")
只在第一列上做
A B C coolness
0 yes 5 a no
1 yes 6 b no
2 2 7 c no
3 yes 8 d no
4 4 9 e no
答案 0 :(得分:1)
您的意思是:
df.loc[[0,1,3], 'coolness'] = 'yes'
答案 1 :(得分:0)
如果0,1,3是索引,则
df.loc[[0,1,3], 'coolness'] = 'yes'
如果0 1 3是A列的值
def app(x):
if x["A"]==0 or x["A"]==1 or x["A"]==3:
x['coolness']="yes"
return x
f=f.apply(app,axis=1)
f
两种情况下的结果
A B C coolness
0 0 5 a yes
1 1 6 b yes
2 2 7 c no
3 3 8 d yes
4 4 9 e no