0
我找不到任何方法从我的输入中获取输出。我想按用户和问题进行分组(但这个问题信息已经在答案栏中,因为它是问题中的NaN,与给定答案无关,请参阅下文),并获取每个答案栏的方法。pandas groupby和更多列上的均值聚合
Q代表提问,A代表回答
输入:
import pandas as pd
import numpy as np
df = pd.DataFrame(
data={
'userid':[11,11,11,12,13,13],
'Q':['Q1','Q2','Q1','Q3','Q1','Q1'],
'A1':[1,np.NaN,0,np.NaN,0.8,0.6],
'A2':[np.NaN,1,np.NaN,np.NaN,np.NaN,np.NaN],
},
index=range(1,7)
)
我的预期暂时状态 - 你不必使用:
temp_df = pd.DataFrame(
data={
'userid':[11,12,13],
'A1':[0.5,np.NaN,0.7],
'A2':[1,np.NaN,np.NaN],
},
index=range(1,4)
)
的最终期望的数据帧:
desired_df = pd.DataFrame(
data={
'userid':[11,12,13],
'A1':[0.5,0.6,0.7],
'A2':[1,1,1],
},
index=range(1,4)
)
'temp_df = df.groupby(df.userid).mean()',但你如何计算'desired_df'的 '手段'?例如,'0.6'是如何产生的?你是否混合了不同用户的数据? – mhoff
是的,但现在解决了,感谢您的关注! – PEZO