Python 如何仅为具有给定列表中的值的行添加列和设置值
假设我有这样一个数据帧:Python 如何仅为具有给定列表中的值的行添加列和设置值,python,dataframe,Python,Dataframe,假设我有这样一个数据帧: ID size price 0 1 5 300 1 2 10 500 2 3 20 600 3 4 35 800 4 5 65 900 5 6 70 1000 我想向其中添加一列“removed”,该列中的“ID”为1,否则为0 ids_wanted = [1,4,6] 结果将是: ID size price removed 0
ID size price
0 1 5 300
1 2 10 500
2 3 20 600
3 4 35 800
4 5 65 900
5 6 70 1000
我想向其中添加一列“removed”,该列中的“ID”为1,否则为0
ids_wanted = [1,4,6]
结果将是:
ID size price removed
0 1 5 300 1
1 2 10 500 0
2 3 20 600 0
3 4 35 800 1
4 5 65 900 0
5 6 70 1000 1
我的代码是:
import numpy as np
import pandas as pd
i = range(1,7)
s = [5,10,20,35,65,70]
p = [300,500,600,800,900,1000]
df = pd.DataFrame({"ID":i,"size":s,"price":p})
ids_wanted = [1,4,6]
df['removed']=['1','0','0','1','0','1']
df
如果要使用0或1动态标记它们,则需要将“removed”列的声明更改为类似以下内容:
import numpy as np
import pandas as pd
i = range(1,7)
s = [5,10,20,35,65,70]
p = [300,500,600,800,900,1000]
df = pd.DataFrame({"ID":i,"size":s,"price":p})
ids_wanted = [1,4,6]
ids = [df['ID'][j] for j in range(len(df['ID']))]
df['removed']=[1 if j in ids_wanted else 0 for j in ids]
因此,它将ids_中的所有ID设置为1,其他ID设置为0。您的代码工作正常。你能清楚地解释你的问题吗?我只是在演示中使用了df['removed']=['1','0','0','1','0','1']。我想让它自己做。如果ID在列表“ids_wanted”中,则其列“removed”将为1,否则为0。谢谢,但i未定义。你说的“我”是什么意思?在你的问题中有定义,明白了。非常感谢你!我的ID列实际上不是i=range(1,7)。如何将其实现到列中的值?如果ID中的j_需要,则df['removed']=['1',否则df['ID']]中的j的“0”不起作用。