从Python datafram中的SQL连接中删除方括号

2024-10-04 03:27:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我是新来的

我的Python笔记本中有一个SQL查询表,它提供了以下数据帧:

enter image description here

我的最终目标是按第二列分组,这是一个布尔值,并得到第一列中每组的平均值(范围从1到10)

问题是我无法有效地删除括号,因此无法从第一列计算任何内容。到目前为止,我已经尝试过:

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
')

有什么建议吗?你知道吗


Tags: 数据id内容sqlon笔记本vallist
2条回答

可以执行以下操作以删除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
    df['value'] = df['value'].str[0]

或:

    df['value'] = df['value'].str.get(0)

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

相关问题 更多 >