基于if条件的Python列更新
我有一个包含两个数据帧的列表。我试图根据“已婚”的值更新列“Dependents”,只要它为空基于if条件的Python列更新,python,pandas,Python,Pandas,我有一个包含两个数据帧的列表。我试图根据“已婚”的值更新列“Dependents”,只要它为空 for dataset in data_cleaner: dataset[dataset.Dependents.isnull()].loc[dataset.Dependents.isnull() and dataset['Married']=='Yes' ] ='1' dataset[dataset.Dependents.isnull()].loc[dataset.Dependents
for dataset in data_cleaner:
dataset[dataset.Dependents.isnull()].loc[dataset.Dependents.isnull() and dataset['Married']=='Yes' ] ='1'
dataset[dataset.Dependents.isnull()].loc[dataset.Dependents.isnull() and dataset['Married']=='No' ] ='0'
错误:序列的真值不明确。使用a.empty、a.bool()、a.item()、a.any()或a.all()。
也尝试了if-else条件,得到了相同的错误。我在这里遗漏了什么或不理解什么 错误意味着在比较数组中使用带链布尔条件的
和
,因此需要按位和
-&
。另一个问题是在“已婚者比较条件”列中缺少()
由于使用数据帧列表,因此有必要使用索引更新每个数据帧-data\u cleaner[i]
注意:如果需要使用数字,请附加1
和0
,而不是'1'
和'0'
for i in range(len(data_cleaner)):
m1 = data_cleaner[i].Dependents.isnull()
data_cleaner[i].loc[m1 & (data_cleaner[i]['Married']=='Yes'), 'Dependents'] ='1'
data_cleaner[i].loc[m1 & (data_cleaner[i]['Married']=='No'), 'Dependents'] ='0'
备选方案包括:
或创建另一个数据帧列表:
out = []
for dataset in data_cleaner:
m1 = dataset.Dependents.isnull()
dataset.loc[m1 & (dataset['Married']=='Yes'), 'Dependents'] ='1'
dataset.loc[m1 & (dataset['Married']=='No'), 'Dependents'] ='0'
out.append(dataset)
错误意味着在比较数组中使用带有链布尔条件的
和
,因此需要按位和
-&
。另一个问题是在“已婚者比较条件”列中缺少()
由于使用数据帧列表,因此有必要使用索引更新每个数据帧-data\u cleaner[i]
注意:如果需要使用数字,请附加1
和0
,而不是'1'
和'0'
for i in range(len(data_cleaner)):
m1 = data_cleaner[i].Dependents.isnull()
data_cleaner[i].loc[m1 & (data_cleaner[i]['Married']=='Yes'), 'Dependents'] ='1'
data_cleaner[i].loc[m1 & (data_cleaner[i]['Married']=='No'), 'Dependents'] ='0'
备选方案包括:
或创建另一个数据帧列表:
out = []
for dataset in data_cleaner:
m1 = dataset.Dependents.isnull()
dataset.loc[m1 & (dataset['Married']=='Yes'), 'Dependents'] ='1'
dataset.loc[m1 & (dataset['Married']=='No'), 'Dependents'] ='0'
out.append(dataset)
您需要指定您的列名
for dataset in data_cleaner:
dataset.loc[(dataset.Dependents.isnull()) & (dataset['Married']=='Yes'),'Dependents' ] ='1'
dataset.loc[(dataset.Dependents.isnull()) & (dataset['Married']=='NO'),'Dependents' ] ='0'
您需要指定您的列名
for dataset in data_cleaner:
dataset.loc[(dataset.Dependents.isnull()) & (dataset['Married']=='Yes'),'Dependents' ] ='1'
dataset.loc[(dataset.Dependents.isnull()) & (dataset['Married']=='NO'),'Dependents' ] ='0'
请发布错误。请发布错误。