我是新来的
我的Python笔记本中有一个SQL查询表,它给出了以下数据框:
我的最终目标是按第二列分组,这是一个布尔值,并得到第一列的每组平均值(范围从1到10)
问题是我无法有效地移除支架,因此无法从第1列计算任何内容。到目前为止,我已经尝试过这个:
val = df.values
val
其次是:
list = [i[0] for i in val]
z = map(ast.literal_eval,list)
zz= list(z)
zz
已经工作了我想从列中使用如下的值[367,368,370](这是多选题的选择,给你一些上下文)但是在这种情况下它没有不行。也许是因为布尔旁边的呢?我真的不知道。
编辑:SQL查询:
pd.read_sql
('
SELECT U.iUserSexeType, CA.jAnswer
FROM [User] U
JOIN DBO.ConsultationAnswer CA ON CA.fkiUserId=U.id
LEFT JOIN UserAdresse UA ON UA.fkiUserId=U.id
WHERE fkiConsultationSurveyId=37 and fkiConsultationQuestionId=260
')
有什么建议吗?
答案 0 :(得分:0)
您可以执行此操作以删除SQL查询中的括号:
Select replace(replace(JAnswer,'['),']')
from your table
您的查询:
SELECT U.iUserSexeType, replace(replace(CA.jAnswer,'['),']') as jAnswer
FROM [User] U
JOIN DBO.ConsultationAnswer CA ON CA.fkiUserId=U.id
LEFT JOIN UserAdresse UA ON UA.fkiUserId=U.id
where fkiConsultationSurveyId=37
and fkiConsultationQuestionId=260
答案 1 :(得分:0)
df['value'] = df['value'].str[0]
或者:
df['value'] = df['value'].str.get(0)