根据条件从其他4个列中创建一个类别变量

时间:2019-08-12 18:25:39

标签: python pandas

我必须从一个DataFrame的两个或更多列中创建一些类别。创建一个地图时,我发现了一些解决方案,您可以像这样的代码使用lambda:

df = pd.DataFrame({
    'a': ['15.22', '50.55', '25.25', '15.45','78.12'],
    'b': ['22','50','1', '2', '5'],
    'c': ['1','2','5','4','0'],
    'd': ['78','5','45','78','125']})

然后我用:

df['e'] = df['d'].apply(lambda x: 1 if x < 50 else x)

这对我来说很好,但是,当我尝试放入另一个变量时,我不知道该怎么做。例如:

(if df.a > 50 & <= 10) = 1
(if df.a > 10) & (df.b > 20) & (df.c >= 1) & (df.d > 5 and < 50) = 2
(if df.a > 25 and < 15) & (df.b > 15 and < 50) & (df.c >= 5) & (df.d > 10 and < 25) = 3

等...

我想对4个不同的变量使用4个条件来创建一个新变量。我必须在一个值和另一个值之间使用这些条件,以创建一个。我在互联网上进行搜索,发现有很多选择可以做到这一点,但是所有示例都显示了如何将一个变量转换为另一个变量。 最好的方法是什么?

0 个答案:

没有答案