如果条件满足,Pandas会给两个变量赋值

2024-05-29 09:33:08 发布

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

我想逐行检查是否满足某些条件,然后将值赋给多个列。在

这是我想要的

df.ix[(df.city.isin(["UNKNOWN"]) | df.city.isnull()) & (df.street.str[0:4].str.contains('TRAN')|df.street.str[0:4].str.contains('TRAS')| \
df.street.str[0:4].str.contains('HOM')|df.street.str.contains("(HOMELESS)|")|df.city.str.contains("HOMELESSS") ),'city']="HOMELESS"

df.ix[(df.city.isin(["UNKNOWN"]) | df.city.isnull()) & (df.street.str[0:4].str.contains('TRAN')|df.street.str[0:4].str.contains('TRAS')| \
df.street.str[0:4].str.contains('HOM')|df.street.str.contains("(HOMELESS)|")|df.city.str.contains("HOMELESSS") ),'homeless']=1

但我想知道是否有一种方法可以不重复两次。在


Tags: streetcitydf条件unknownixcontainsstr
1条回答
网友
1楼 · 发布于 2024-05-29 09:33:08

可以使用列表作为第二个轴的索引:

df = pd.DataFrame(np.random.randint(0, 10, size=(10, 4)), columns=list("ABCD"))
df.ix[(df.A > 5) & (df.B < 8), ["A", "B"]] = -10, -10

相关问题 更多 >

    热门问题