从Python数据框中的SQL连接中删除括号

时间:2017-08-04 13:34:47

标签: python sql sql-server dataframe

我是新来的

我的Python笔记本中有一个SQL查询表,它给出了以下数据框:

enter image description here

我的最终目标是按第二列分组,这是一个布尔值,并得到第一列的每组平均值(范围从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
')

有什么建议吗?

2 个答案:

答案 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)

https://stackoverflow.com/a/38147471/7853322