如果列项目等于特定值,则插入新项目

时间:2019-03-04 00:02:47

标签: python pandas numpy where assign

我正在尝试根据一个单独的Column中的值插入一个新的Column。对于下面的df,我有Column天。在此Column中的值等于Monday的情况下,我想将0插入到名为Column的新Group中。

这是我的尝试:

import pandas as pd
import numpy as np

d = ({             
   'Day' : ['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday'],                                                                                                                                                 
    })

df = pd.DataFrame(data=d)

df['Group'] = np.where(df['Day'] == 'Monday', 0)
print(df)

错误:

  

ValueError:应同时给出x和y或不给出

2 个答案:

答案 0 :(得分:1)

您需要为星期一和星期五都不提供值。如果您查看docs,那就是xy。现在,您只为前者提供一些东西。因此,假设所有非星期一都进入第1组,那么您有:

df['Group'] = np.where(df['Day'] == 'Monday', 0, 1)

答案 1 :(得分:1)

简单

df['Group']=(df['Day'] != 'Monday').astype(int)