我想在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