gpt4 book ai didi

Python 对 pandas 进行评分、字符串验证

转载 作者:太空宇宙 更新时间:2023-11-03 21:44:14 25 4
gpt4 key购买 nike

我正在尝试为每个具有两个属性(列)值等于“开”的参与者(由行表示)添加“1”分。

但是,即使单元格都包含“On”,这也不会分配 1 分。

还有更简单的解决方案吗?

for row in reduction.itertuples():
if str(reduction['q1-1']) == "On" and str(reduction['q1-2']) == "On":
q1 = 1
else:
q1 = 0
print(q1)

最佳答案

如果需要新列q创建 bool 掩码并转换为整数:

reduction = pd.DataFrame({
'q1-1': ['On','On','Off','Off'],
'q1-2': ['On','Off','On','Off']
})

mask = (reduction['q1-1'].astype(str) == "On") & (reduction['q1-2'].astype(str) == "On")

#alternative
mask = (reduction[['q1-1','q1-2']].astype(str) == "On").all(axis=1)
reduction['q'] = mask.astype(int)
print (reduction)
q1-1 q1-2 q
0 On On 1
1 On Off 0
2 Off On 0
3 Off Off 0

替代方案的说明:

将子集选择的列转换为字符串并按 DataFrame.eq 进行比较==:

print (reduction[['q1-1','q1-2']].astype(str) == "On")
q1-1 q1-2
0 True True
1 True False
2 False True
3 False False

然后检查是否 all每行的值为 True:

print ((reduction[['q1-1','q1-2']].astype(str) == "On").all(axis=1))
0 True
1 False
2 False
3 False
dtype: bool

关于Python 对 pandas 进行评分、字符串验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52606376/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com