gpt4 book ai didi

python - 将观察结果表示为字典并基于一个键和值集进行过滤

转载 作者:行者123 更新时间:2023-11-30 23:35:58 25 4
gpt4 key购买 nike

我有一个数据集(在文件中),由具有各种属性(列)的多个观察值(行)组成。例如:

AttrA   AttrB   AttrC
1 12 'a'
2 43 'd'
3 23 'f'
4 25 'z'

我把这个数据集放入Python字典中,这样:

data = {'AttrA':[1,2,3,4],'AttrB':[12,43,23,25],'AttrC':['a','d','f','z']}

我希望能够根据其中一个键的标准来过滤观察结果。举些例子。过滤 AttrA >= 3 的观察结果,这样:

 AttrA   AttrB   AttrC
3 23 'f'
4 25 'z'

reducedData = {'AttrA':[3,4],'AttrB':[23,25],'AttrC':['f','z']}

看起来你可以这样做:reduceddata = {(k,v) for k,v in data if (??)},但我不确定之后会发生什么if 语句。另外,字典是此示例中使用的最佳数据类型吗?如果数据位于嵌套列表中,似乎过滤起来会更容易。

提前谢谢您!!

最佳答案

我会先改变结构:

table = [dict(zip(data.keys(), row)) for row in zip(*data.values())]

它看起来像这样:

[{'AttrA': 1, 'AttrB': 12, 'AttrC': 'a'},
{'AttrA': 2, 'AttrB': 43, 'AttrC': 'd'},
{'AttrA': 3, 'AttrB': 23, 'AttrC': 'f'},
{'AttrA': 4, 'AttrB': 25, 'AttrC': 'z'}]

现在,您可以完全像您所描述的那样过滤它:

[row for row in table if row['AttrA'] >= 3]

关于python - 将观察结果表示为字典并基于一个键和值集进行过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16879640/

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