如何基于问卷回答DataFrame计算各问题的最小受访者年龄
统计各问卷问题对应的最小受访者年龄
原始数据
以下是包含问卷回答的DataFrame:
import pandas as pd import numpy as np df = pd.DataFrame( data=[ [10, np.nan, 'Answer 1', 'Answer 2'], [40, "Answer 4", "Answer 3", 'Answer 2'], [20, "Answer 2", np.nan, 'Answer 1'] ], columns=['Age', 'Question 1', 'Question 2', 'Question 3'] )
该DataFrame的内容为:
Age Question 1 Question 2 Question 3 0 10 NaN Answer 1 Answer 2 1 40 Answer 4 Answer 3 Answer 2 2 20 Answer 2 NaN Answer 1
需求目标
生成一个新的DataFrame,记录每个问卷问题对应的受访者最小年龄。
实现代码(注:代码写法较为粗糙)
df2 = pd.DataFrame(data=df.columns.tolist(), columns=["Questions"]) for col in df2["Questions"]: if col != "Age": # 过滤掉当前问题无回答的行,再取最小年龄 df2.loc[df2["Questions"] == col, "min_age"] = df.loc[:, ["Age", col]].dropna()["Age"].min()
最终生成的df2内容为:
Questions min_age 0 Age NaN 1 Question 1 20.0 2 Question 2 10.0 3 Question 3 10.0
内容的提问来源于stack exchange,提问作者gabboshow
相关产品推荐
相关产品推荐

