我想创建一个函数,给定字典将能够生成应用函数,例如:
df = pd.DataFrame({"A" : [1,2,3,4],
"B" : [4,5,6,7]})
这是一个熊猫数据框。
我想创建一个 2 个新列:“D”和“E”。如果 A <=2 D = 0,如果 A = 3 D = 0.5 否则为 1,而 E = 0 如果 B <=5 否则为 1。所以生成的 DataFrame 将是:
df_result = pd.DataFrame({"A" : [1, 2, 3, 4],
"B" : [4, 5, 6, 7],
"D" : [0, 0, 0.5, 1],
"E" : [0, 0, 1, 1]
})
通常我会使用 2 个不同的功能,例如:
f_a = lambda x : 0 if x <=2 else (0.5 if x == 3 else 1)
f_b = lambda x : 0 if x <=5 else 1
而且我会使用类似的东西:
df["D"] = df["A"].apply(f_a)
df["E"] = df["B"].apply(f_b)
有一种方法可以创建一个函数,该函数将在给定字典的情况下返回像 f_a 这样的 lambda 函数:
{ "0" : 2,
"0.5" : 3,
"1" : 4}
谢谢