gpt4 book ai didi

python - 在 Python 中提取特定列并将其从字典中分组

转载 作者:行者123 更新时间:2023-11-29 12:36:11 25 4
gpt4 key购买 nike

我想提取特定列并将它们从使用 MySQLdb 获得的记录中分组。 。我写了以下代码:

import _mysql
cdb=_mysql.connect(host="myhost",user="root",
passwd="******",db="my_db")
qry = "select col1,col2,col3,col4,col5,col6 from mytable"

cdb.query(qry)

resultset = cdb.store_result()

records = resultset.fetch_row(0,1) # 0 - no limit, 1 - output is in dictionary form

我只想从记录中提取 3 列:col1、col3 和 col4,并希望使用这三列创建唯一值组,即 (col1,col3,col4) 的所有唯一组合。我知道我必须使用 set() 数据类型来查找唯一值,我尝试使用它,但没有找到任何成功。让我知道什么是好的解决方案。

我的数据库中有数千条记录。我通过以下方式获取记录的输出:

({
'col1':'data11',
'col2':'data11',
'col3':'data13',
'col4':'data14',
'col5':'data15',
'col6':'data16'
},
{
'col1':'data21',
'col2':'data21',
'col3':'data23',
'col4':'data24',
'col5':'data25',
'col6':'data26'
})

最佳答案

我想出了这个解决方案:

def filter_unique(records, columns):
unique = set(tuple(rec[col] for col in columns) for rec in records)
return [dict(zip(columns, items)) for items in unique]

它首先为每个记录生成一个列值元组,然后使用 set() 删除非唯一出现的值,然后通过为元组中的每个值指定名称来重建字典。

这样调用它:

filtered_records = filter_unique(records, ['col1','col2','col3'])

免责声明:我自己是一名Python初学者,所以我的解决方案可能不是最好的或最优化的。

关于python - 在 Python 中提取特定列并将其从字典中分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26756939/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com