如何在python中添加一个字段以基于其他列返回值



我想在python中基于其他字段的值创建一个新字段。例如,Pop2020列的值范围为0-10000。如果该值在0-200之间,那么我想要一个新的字段来指示"0";0-200";,如果值在201-500之间;201-500〃;等等。我想在下面使用一个语句,但它只返回true或false值。我想也许我应该使用append函数,但不确定什么能得到我需要的东西。

excl['TestFlag'] = np.where(excl['Pop2020'] > 0 and < 201, True, False)

我希望下面的例子能对您有所帮助。您可以使用pandas.Series.apply,它接收一个可调用的,并将其按元素应用于列:

import pandas as pd
def f(x):
if 10 < x:
return 'a'
elif 5 < x <= 10:
return 'b'
else:
return 'c'
df = pd.DataFrame({"num1":[1,10,11,2,6,4,8], "num2":[0,1,0,1,2,0,7]})
df["new_col"] = df["num1"].apply(f)
#   num1  num2 new_col
#0     1     0       c
#1    10     1       b
#2    11     0       a
#3     2     1       c
#4     6     2       b
#5     4     0       c
#6     8     7       b

相关内容

最新更新