Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于if条件的Python列更新_Python_Pandas - Fatal编程技术网

基于if条件的Python列更新

基于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

我有一个包含两个数据帧的列表。我试图根据“已婚”的值更新列“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'

请发布错误。请发布错误。