Python:将 np.where 与文本列合并
Python: combining np.where with text columns
我想根据以下文本条件将新列插入到 Python 中的数据框中
Data['new_column'] = np.where(Data.Column1 = 'Text1', 1.20,
np.where(Data.Column2 = 'Text 2' & Data.Column3='Text2' , 1.09, 1))
np.where 适用于数字列,但不适用于基于文本的列。
我需要在我的代码中调整什么才能使其正常工作?
我发现代码有几个问题
- 当你进行比较时,如果你想知道是否相等,你必须使用 ==
- 对于第二个 np.where() 如果您希望在单个表达式中使用多个参数,则它们必须被 ()
包围
Data = {
'Column1' : ['Text1', 2, 3, np.nan],
'Column2' : [1, 'Text 2', 3, 4],
'Column3' : [1, 'Text 2', 3, 4]
}
Data = pd.DataFrame(Data)
Data['new_column'] = np.where(Data.Column1 == 'Text1', 1.20,
np.where((Data.Column2 == 'Text 2') & (Data.Column3 == 'Text 2') , 1.09, 1))
Data
我想根据以下文本条件将新列插入到 Python 中的数据框中
Data['new_column'] = np.where(Data.Column1 = 'Text1', 1.20,
np.where(Data.Column2 = 'Text 2' & Data.Column3='Text2' , 1.09, 1))
np.where 适用于数字列,但不适用于基于文本的列。 我需要在我的代码中调整什么才能使其正常工作?
我发现代码有几个问题
- 当你进行比较时,如果你想知道是否相等,你必须使用 ==
- 对于第二个 np.where() 如果您希望在单个表达式中使用多个参数,则它们必须被 () 包围
Data = {
'Column1' : ['Text1', 2, 3, np.nan],
'Column2' : [1, 'Text 2', 3, 4],
'Column3' : [1, 'Text 2', 3, 4]
}
Data = pd.DataFrame(Data)
Data['new_column'] = np.where(Data.Column1 == 'Text1', 1.20,
np.where((Data.Column2 == 'Text 2') & (Data.Column3 == 'Text 2') , 1.09, 1))
Data