首先,我们需要创建一个示例数据集。
import pandas as pd
data = {'name': ['John', 'Mary', 'Bob', 'Emma'],
'age': [32, 25, 18, 47],
'is_student': [True, True, False, False],
'has_degree': [True, False, True, True]}
df = pd.DataFrame(data)
print(df)
输出:
name age is_student has_degree
0 John 32 True True
1 Mary 25 True False
2 Bob 18 False True
3 Emma 47 False True
接下来,我们可以使用以下代码来实现遍历每一行,查看“is_student”和“has_degree”列的值,并将结果存储在“Test”列中。
columns_to_check = ['is_student', 'has_degree']
df['Test'] = ''
for i in range(len(df)):
for column in columns_to_check:
if df.loc[i, column] == True:
df.at[i, 'Test'] = df.at[i, 'Test'] + column + ', '
df['Test'] = df['Test'].str.rstrip(', ')
print(df)
输出:
name age is_student has_degree Test
0 John 32 True True is_student, has_degree
1 Mary 25 True False is_student
2 Bob 18 False True has_degree
3 Emma 47 False True has_degree
这段代码中,我们首先定义了一个包含需要检查的列的列表。然后,我们遍历了df的每一行,并在每行的“Test”列中标记需要检查的列。注意,我们使用了“at”方法来设置单个单元格的值,以避免在迭代过程中修改整个df。最后,我们使用“rstrip”函数删除了每个“Test”值末尾的逗号和空格。
因此,我们就成功地解决了这个问题。