我想更改数据框中的Cabin
列的值。
这是我的数据框:
我想将值分配为1,其中Cabin
不等于0
。这意味着C85, C123, E46
的值应为1
,其余值应相同。
这是代码,但是出现数值错误。
if df_train.Cabin != 0:
df_train.Cabin = 1
else:
df_train.Cabin = 0
答案 0 :(得分:2)
只需使用df.apply
:
df_train["new_Cabin"] = df_train["Cabin"].apply(lambda x: x != "0").astype(int)
或更简单:
df["new_Cabin"] = (df_train["Cabin"] != "0").astype(int)
答案 1 :(得分:1)
尝试np.where
df['newCabin'] = np.where(df['cabin'] != 0, 1, df['cabin'])
print(df)
cabin newCabin
0 0
C85 1
0 0
C123 1
0 0
0 0
如果您不想再增加一列,那么您也可以这样做
df['cabin'] = np.where(df['cabin'] != 0, 1, df['cabin'])
print(df)
cabin
0
1
0
1
0
0
答案 2 :(得分:0)
应该起作用的简单oneliner
SELECT due_date
FROM payments_payment
WHERE payments_payment.due_date + interval '5 day' < current_date
AND payments_payment.status = 1