从其他4列中创建一个带条件的分类变量

2024-03-29 10:47:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我必须从一个数据帧的两个或更多列中创建一些类别。我找到了一些解决方案,比如创建一个地图,你使用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个条件来创建一个新的变量。我必须在一个值和另一个值之间使用这些条件,来创建一个值。我在网上搜索了很多方法,但所有的例子都展示了如何将一个变量转换成另一个变量。 最好的办法是什么?你知道吗


Tags: and数据方法lambda代码dataframedfif