【发布时间】:2023-02-09 20:53:13
【问题描述】:
我想根据一行中是否存在 1 到 5 之间的值来创建一个新列。
这是我的 df:
如果一行中的任何值介于 0 和 5 之间,我希望新列返回“是”。 在这种情况下,它只是带有 3.0 的行。
我试过类似的东西:
cols=[col for col in df.columns if 'date_' in col]
df['new_col']=df[cols].apply(lambda x: "Yes" if 0<=x[cols]<=5 else "No",axis=0)
但我收到此错误:
KeyError: "None of [Index(['date_0', 'date_1', 'date_2', 'date_3', 'date_4', 'date_5', 'date_6',\n 'date_7', 'date_8', 'date_9', 'date_10', 'date_11', 'date_12',\n 'date_13', 'date_14', 'date_15', 'date_16', 'date_17', 'date_18',\n 'date_19', 'date_20', 'date_21', 'date_22', 'date_23', 'date_24',\n 'date_25', 'date_26', 'date_27', 'date_28', 'date_29', 'date_30',\n 'date_31', 'date_32', 'date_33', 'date_34', 'date_35', 'date_36',\n 'date_37', 'date_38', 'date_39', 'date_40', 'date_41', 'date_42',\n 'date_43', 'date_44', 'date_45', 'date_46', 'date_47', 'date_48',\n 'date_49', 'date_50', 'date_51', 'date_52', 'date_53', 'date_54',\n 'date_55', 'date_56', 'date_57', 'date_58', 'date_59', 'date_60',\n 'date_61', 'date_62', 'date_63', 'date_64', 'date_65', 'date_66',\n 'date_67', 'date_68', 'date_69', 'date_70', 'date_71', 'date_72',\n 'date_73', 'date_74', 'date_75', 'date_76', 'date_77', 'date_78'],\n dtype='object')] are in the [index]"
【问题讨论】: