Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何仅为具有给定列表中的值的行添加列和设置值_Python_Dataframe - Fatal编程技术网

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”不起作用。