亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

大熊貓中值為 1/0 的新列

大熊貓中值為 1/0 的新列

慕仙森 2023-04-25 16:40:13
我有這個數據框,其中有一列是我感興趣的:Col1   code goalpythondetail我想創建一個新列,Col2 的值為 1 或 0,具體取決于 Col1 中行的值;具體來說:如果一行在列表中有值my_list=['goal', 'detail', 'objective'],則賦值 1;如果沒有,則分配 0。我的輸出是:Col1       Col2code        0goal        1python      0detail      1我試過# set default valuedf['Col2'] = 0# update according to conditionsdf.loc[df['Col1'].str.contains('goal'), 'Col2'] = 1df.loc[df['Col1'].str.contains('detail'), 'Col2'] = 1df.loc[df['Col1'].str.contains('objective'), 'Col2'] = 1但這似乎是部分錯誤的。我認為我應該使用 apply 并考慮單詞 x 而my_list不是手動執行(如果列表中有很多很多值,這將很困難)。我希望你可以幫助我。
查看完整描述

2 回答

?
一只甜甜圈

TA貢獻1836條經驗 獲得超5個贊

使用np.where+Series.isin


import numpy as np


my_list=['goal', 'detail', 'objective']


df['Col2'] = np.where(df.Col1.isin(my_list), 1, 0)

或如@Ch3steR 所述


df['Col2'] = df.Col1.isin(my_list).astype('int')

     Col1  Col2

0   code      0

1    goal     1

2  python     0

3  detail     1


查看完整回答
反對 回復 2023-04-25
?
牧羊人nacy

TA貢獻1862條經驗 獲得超7個贊

如何申請:

import pandas as pd



df = pd.DataFrame(data = ['code', 'goal', 'python', 'detail'], columns = ['Col1'])


mylist=['goal', 'detail', 'objective']


df['Col2'] = df['Col1'].apply(lambda cell: 1 if cell in mylist else 0)


? ? ?Col1? Col2

0? ? code? ? ?0

1? ? goal? ? ?1

2? python? ? ?0

3? detail? ? ?1


查看完整回答
反對 回復 2023-04-25
  • 2 回答
  • 0 關注
  • 142 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號