我有这个数据框,其中有一列是我感兴趣的:
Col1
code
goal
python
detail
我想创建一个新列,Col2 的值为 1 或 0,具体取决于 Col1 中行的值;具体来说:
如果一行在列表中有值my_list=['goal', 'detail', 'objective'],则赋值 1;
如果没有,则分配 0。
我的输出是:
Col1 Col2
code 0
goal 1
python 0
detail 1
我试过
# set default value
df['Col2'] = 0
# update according to conditions
df.loc[df['Col1'].str.contains('goal'), 'Col2'] = 1
df.loc[df['Col1'].str.contains('detail'), 'Col2'] = 1
df.loc[df['Col1'].str.contains('objective'), 'Col2'] = 1
但这似乎是部分错误的。我认为我应该使用 apply 并考虑单词 x 而my_list不是手动执行(如果列表中有很多很多值,这将很困难)。
我希望你可以帮助我。
一只甜甜圈
牧羊人nacy
相关分类