Tag: 字典

获取按索引定位的嵌套字典中的键和值的列表

我有一个像这样的结构的Excel文件: name age status anna 35 single petr 27 married 我已经把这样的文件转换成一个嵌套的字典,像这样的结构: {'anna': {'age':35}, {'status': 'single'}}, {'petr': {'age':27}, {'status': 'married'}} 使用pandas: import pandas as pd df = pd.read_excel('path/to/file') df.set_index('name', inplace=True) print(df.to_dict(orient='index')) 但是现在当运行list(df.keys())它会返回字典中所有键(“年龄”,“状态”等)的列表,但不包含“名称”。 我最终的目标是通过input一个名字来返回所有的键和值。 有没有可能? 或者,也许我应该使用其他方式导入数据,以实现目标? 最后我应该来找一本字典,因为我会用一把钥匙把它和其他字典合并起来。

合并行使用词典在总和和最大值/最小值的VBA到某些列

我正在尝试合并具有多个属性的数据行(例如订单号和产品编号)。 例如:订单12345有4行数据都具有相同的产品编号,但每行都有唯一的收入金额。 我想要一个最终的结果,所有4行被合并成1行,其中有4条原始行总计收入金额。 另外每一行都有开始和结束date。 我需要最后的合并行将最早的( MIN )开始date和最后的( MAX )结束date作为合并行的最终结果。 我要整理的目标行并不总是连续的,因此我认为字典将是他们要走的路(在这个path中,唯一的ID(用于标识需要整合的行)是我的“关键”)。 我在这里发现了一个类似的问题,并用这个答案的代码来到我现在所在的位置。 我有一个“唯一的ID”,它决定了哪些行需要合并在一起(如果ID是相同的,行需要合并)。 唯一ID是4列(订单#,产品,合同名称和状态)的串联。 我目前的代码是: Dim oRange As Range Dim oTarget As Range Dim oRow As Range Dim oRowAmend As Range Dim oDic As Scripting.Dictionary Dim sIndex As String Dim vKey As Variant Dim vItem As Variant Dim LastRow As Long Worksheets("ODD Data").Activate LastRow = Worksheets("ODD […]

更新存储在VBA字典中的数组

我正在创build一个使用嵌套字典和最低级别的列表的数据结构。 以下是我的数据示例: Country, Customer, Purchased US, Alan, Lawnmower US, Alan, Hammer US, Karen, Donkey US, Simon, Mustang MX, Carl, Lawnmower MX, Alan, Donkey … 我想到的数据结构看起来像dictionary –> dictionary –> array – 即, country –> customer –> purchased 。 计划是为每个dictionary –> dictionary有一个新的数组dictionary –> dictionary组合。 但是,当我尝试更新数组时,它似乎链接到dictionary –> dictionary所有较低级别dictionary –> dictionary结构。 也就是说,第三行处理完之后,有以下情况: US –> Alan –> [Lawnmower, Hammer, Donkey] […]

如何强制字典元素按顺序写入?

我正在尝试使用XlsxWriter从Python写入Excel工作簿。 我有一个名为Pg的字典,其键是元组。 for key,value in Pg.iteritems(): for t in range(1,4): if key==(0,t): worksheet.write(row,col,value.x) row += 1 我想在一个列中写入键(0,t)的值,但这些值不以正常顺序出现。 例如,如果我的字典是这样的: Pg={(0,1):1,(0,2):2,(0,3):3} 我在Excel中获得: 1 3 2 为什么会发生这种情况,当我在第二个循环中严格确定了我希望如何写入我的值?

VBA中的单个数据字典

我看起来像一个简单的问题。 我有一个值,我需要循环和删除的数组。 问题是一个数组只能被redimmed(不能删除中间的元素)。 我正在考虑使用字典,但我不会真正使用价值,只有关键,这似乎是一个浪费… 是否有这样的事情作为一个“关键”列表? 对于上下文,我想要做的是这样的: 创build数组: {1,2,3,4,5,6,7} 从中间删除一个元素:例如delete(3)= {1,2,4,5,6,7} 正如我所说,我可以使用字典,但似乎是一种浪费!

AutoFilter是否可以从Dictionary键中取出包含和不包含的通配符?

我一直在寻找一种方法来筛选超过两个通配符的Excel电子表格。 之前我问过StackOverflow,如果我可以直接在VBA中直接使用两个以上的通配符,而不是在工作表中使用高级filter,因为我的macros大部分是通过PowerShell脚本使用的,它们通过input传递。 这些通配符用于过滤各种电子表格,并保存结果。 一个非常有用的用户提出了一个使用Dictionary键的示例macros,然后将其扩展为接受一个数组作为input,然后遍历数组中的所有项以通配符进行筛选。 优秀,按预期工作! 现在我想扩展它来传递我想排除的更具体的通配符。 比方说,我想包括“A *”和“B *”,而不是“BB *”,所以“BA *”仍然会在那里。 下面的macros可以通过<> BB *通过吗? hierArray只包含一个由最多10个(但很less超过3个字符)组成的简单string列表。 Public Function multiHier(hierArray As Variant) Dim v As Long, vVALs As Variant, dVALs As Object Dim colNum As Long, hierLen As Integer, hier As Variant Dim rng As Range Set dVALs = CreateObject("Scripting.Dictionary") dVALs.comparemode = vbTextCompare colNum = Application.Match("*ierarchy*", Range("A1:Z1"), […]

sorting出口到Excel的字典?

好吧,所以我有一个字典值列表,这是我一直在寻找的值…我想知道是否有一种方法来sorting这也将显示在不同列中列表的值…我用这个代码将值分成不同的列: writer = csv.writer(csvfile, delimiter=',') for key, value in finaldict.iteritems(): writer.writerow([key] + value) 写这个之前有什么办法可以做这种sorting吗? 任何我似乎尝试任何东西都不sorting,产生一个错误,或打破了它将列表更改为单独列的部分…所以,如果你不明白我在说什么例如让我说我有一本字典 finaldict = {'A': [2 , 1], 'C' [3, 3], 'B' [4, 3]} 我正在寻找这个在Excel文件中: Parameter Val1 Val2 A 2 1 B 4 3 C 3 3 但目前我得到这个: Parameter Val1 Val2 A 2 1 C 3 3 B 4 3 我很感谢答复,谢谢你们!

如何将string存储在VBA字典结构中?

由于我目前正在玩大量的string(看看另一个问题: arrays和Arraylist的VBA内存大小 ),我使用了一个脚本字典只是为了它的键控访问function。 一切都看起来很好,除了这是一些加载string有多慢,它使用了大量的内存。 对于长度为128个字符的100,000个string的示例,任务pipe理器在子结束时显示约295MB,并且当设置Dictionary = Nothing时,在Excel中剩余12MB。 即使考虑内部Unicode转换string128 * 2 * 100,000给25.6 MB! 有人能解释这个巨大的差异吗?

在Excel中使用VBA将项目添加到词典中的特定位置

我需要在字典中的特定键和项目对之后添加项目。 基本上与添加成员允许在集合中相同的行为:( Collection.Add (item [,key] [,before] [,after])

正则expression式从CSV中删除加倍的双引号

我有一个Excel表格,它有一个从SQL数据库的Python字典forms的一列中的大量数据。 我无权访问原始数据库,并且由于CSV每一行上的键/值不是相同的顺序,因此无法使用本地infile命令将CSV导入到sql。 当我将excel表导出为CSV时,我得到: "{""first_name"":""John"",""last_name"":""Smith"",""age"":30}" "{""first_name"":""Tim"",""last_name"":""Johnson"",""age"":34}" 在键/值周围删除“大括号和大括号之前和之后”的最佳方法是什么? 我也需要离开那些没有引号的整数。 我试图然后导入到python与json模块,以便我可以打印特定的键,但我不能导入他们与双重双引号。 我最终需要将数据保存在如下所示的文件中: {"first_name":"John","last_name":"Smith","age":30} {"first_name":"Tim","last_name":"Johnson","age":34} 任何帮助是最感激!