调查 - DF1 - 问题在第 1 行,在 DF2 上所有问题都列在第一列 Python
Survey - DF1 - Questions are in Row1, In DF2 all questions are listed in the first column Python
如果你能帮我解决这个问题,
数据框 1
数据框 2
我想计算从 DF1 到 Df2 的 Yes 数量
像这样
for x in DF2['Questions']:
if x == first row of DF1 count 'Yes'
它遍历整行并且满足条件的地方,它计数是并在 Dataframe2['Yes']
中发布
我一直在尝试这样做,但 none 我所做的工作。如果你能帮助我或建议我应该看什么,请。
谢谢
df_ = df[['Q1', 'Q2']].eq('Yes').sum(axis=0).to_frame(name='Yes').rename_axis('Questions').reset_index()
print(df_)
Questions Yes
0 Q1 1
1 Q2 0
逐步说明:
首先,您可以使用 df[['Q1', 'Q2']].eq('Yes')
获取布尔数据框,该数据框指示值是否为 Yes
Q1 Q2
0 True False
1 False False
然后你可以用 .sum(axis=0)
按行对这个布尔数据帧求和
Q1 1
Q2 0
dtype: int64
最后,您可以使用 .to_frame(name='Yes')
将系列重置为数据帧,使用 .rename_axis('Questions')
重命名索引并使用 .reset_index()
将其重置回列
Questions Yes
0 Q1 1
1 Q2 0
如果你能帮我解决这个问题,
数据框 1
数据框 2
我想计算从 DF1 到 Df2 的 Yes 数量
像这样
for x in DF2['Questions']:
if x == first row of DF1 count 'Yes'
它遍历整行并且满足条件的地方,它计数是并在 Dataframe2['Yes']
中发布我一直在尝试这样做,但 none 我所做的工作。如果你能帮助我或建议我应该看什么,请。
谢谢
df_ = df[['Q1', 'Q2']].eq('Yes').sum(axis=0).to_frame(name='Yes').rename_axis('Questions').reset_index()
print(df_)
Questions Yes
0 Q1 1
1 Q2 0
逐步说明:
首先,您可以使用 df[['Q1', 'Q2']].eq('Yes')
获取布尔数据框,该数据框指示值是否为 Yes
Q1 Q2
0 True False
1 False False
然后你可以用 .sum(axis=0)
Q1 1
Q2 0
dtype: int64
最后,您可以使用 .to_frame(name='Yes')
将系列重置为数据帧,使用 .rename_axis('Questions')
重命名索引并使用 .reset_index()
Questions Yes
0 Q1 1
1 Q2 0