问题标签 [ordereddict]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 如何将 CSV 导入 Pandas df,其中数据由具有父/子关系的索引列组织?
我有这种文本格式的 GB 数据:
第一列表示行内容,是对每个 Account 重复的索引系列(Acct01、Acct02...)。具有索引值 (1,2) 的行与每个帐户(父帐户)一一关联。我想将此数据展平为一个数据框,该数据框将帐户级别数据(索引 = 1,2)与其相关的系列数据(1000、10001、1002、1003 ...)与平面 df 中的子数据相关联。
所需的df:
我已经能够在一个非常机械、非常缓慢的逐行过程中做到这一点:
结果:
这可行,但速度非常慢。我怀疑有一种非常简单的pythonic方法可以导入和组织到df。看来 OrderDict 将按如下方式正确组织数据:
结果:
从 OrderDict 我无法弄清楚如何组合键 1,2 并与特定系列的键(1000、1001)关联,然后附加到 df 中。如何在展平父/子数据时从 OrderedDict 转到 df?或者,有没有更好的方法来处理这些数据?
python - 从 csv 读取项目并更新另一个 csv 中的相同项目
我正在研究一种方法来读取数据,并根据产品的input.csv
更新stock
列output.csv
id
这些是我现在正在执行的步骤:
1.input.csv
从into读取产品信息input_data = []
,这将返回一个 OrderedDict 列表。
input_data
目前看起来像这样:
[OrderedDict([('id', '1'), ('name', 'a'), ('stock', '33')]),
OrderedDict([('id', '2'), ('name', 'b'), ('stock', '66')]), OrderedDict([('id', '3'), ('name', 'c'), ('stock', '99')])]
2.output.csv
从into读取当前产品信息output_data = []
,其架构与input_data
3.根据 中的库存信息,遍历input_data
并更新 中的stock
列。最好的方法是什么?output_data
input_data
-> 重要的一点是,input_data
其中可能存在一些 ID,input_data
但不存在于output_data
. 我想更新 s和s 共同的股票,而“新” s 很可能会被写入新的 csv。id
input_data
output_data
id
我在想类似的东西(这不是真正的代码):
我知道这看起来很混乱,我要的是一种合乎逻辑的方式来完成这项任务,而不会浪费太多的计算时间。有问题的文件可能有 100,000 行长,因此性能和速度将是一个问题。
如果我的数据来自input_data
和,那么签入并将其写入具有完全相同in的产品的最佳方法output_data
是什么?list
OrderedDict
id
input_data
stock
id
output_data
python - 我有一个形状为 (601, 2522) 的数据框。我希望索引从数据框的第二行开始
将索引更改为从数据框的第二行开始。因为,这个数据框将被转换为一个 Ordereddict,我将在其中使用元素的第一行作为我的数据集的标签。
- 在数据框中尝试了多索引,但是当我更改为ordereddict时,dict有两个键:
OrderedDict([('0', 'shot') 0 1577 1 1577])
我只想要一个键,其余的是值,但不应该对“shot”进行索引,因为这将是数据的列名
目前,ordereddict 看起来像这样: OrderedDict([('0', 0 shot 1 1577 2 1577 3 2106 4 2106 5 1875)] 我想要这样:
OrderedDict([('0', shot 0 1577 1 1577 2 2106 3 2106 4 1875)]
python - 使用 Python 创建复杂的 JSON 并创建一些有条件的嵌套数组
在使用 Python 动态创建较大 JSON 字符串的一部分时,我想仅在更高级别的值(在我的情况下为表名)为一个特定的值。
到目前为止的结构是一个 TNFL,我想有条件地将另一个对象与“字段”和“值”一起添加到结构中。
到目前为止我所拥有的:
当表'k'等于'table_x'时,我需要最里面的.append / for循环来添加另一个对象/值,除了名为'nestedTableInsert'的“字段”和“值”对象之外,它有自己的.append函数在我的最终 JSON 中仅为特定表创建另一个层,使其看起来像这样,但语法正确:
我想要做的工作:
添加了“nestedTableInsert”:对象的结构与其父插入对象相同,因此最终的 JSON 看起来像(特别是 'nestedTableInserts' 的唯一名称):
python - 为什么在 python 中使用 OrderedDict 有缺点?
Python 有字典和 OrderedDict。为什么 OrderedDict 不流行?是否缓慢且效率低下?如果我从 python 字典切换到 OrderedDict,我会失去什么?
json - 如何从json中读取ordereddict
我有一个json,
我怎样才能得到name
具有BMW
oderedDict 形式的值?
python - 如何在 Python 3.7 中单步执行大型有序字典?
最近,我一直在将一些 bash 脚本重构到 Python 3.7 中,作为学习练习和项目中的实际使用。最终的实现使用了一个非常大的有序字典,比如大约 2 到 3 百万个条目。以这种方式存储数据有一些显着的优势,可以降低代码复杂性和处理时间。但是,有一个任务让我难以理解:如何从已知的起点逐步浏览字典。
如果我在 C 中执行此操作,我会将指针指向所需的起点并遍历指针。如果Python中有类似的操作,我不知道也找不到。我发现的所有技术似乎都将部分/全部信息复制到一个新列表中,这将非常耗时并且在我的应用程序中浪费大量内存。似乎您也无法对字典进行切片,即使它们现在默认排序。
考虑这个人为的拉丁字母字典示例,其奇怪的键条目按元音和辅音分组,每个组中的条目按字母顺序排序:
假设我想对辅音进行一些处理。而且由于处理需要很多时间(想想几天),我想分块进行。在这种情况下,假设一次有 4 个辅音。我提前知道组开始的键,例如:
但我不知道如何利用这种预知。例如,要处理第 8 到第 11 个辅音,我能做的最好的事情是:
这给出了期望的结果,尽管有点慢,因为我从头开始浏览整个字典,直到遇到所需的条目。
我想我可以使用列表或字典理解更紧凑地表达这个循环,但似乎会在内存中产生巨大的重复。也许上面的方法也能做到这一点,我不是 100% 确定。
我对订购词典的了解
- 这些组,例如元音和辅音,确实是分组的,而不是分散的。
- 在每个组中,条目按已知的所需顺序排序,
- 每组的开始键
问:有没有更好的方法来做到这一点? 我的备用计划是咬紧牙关,保留一组重复的元组,每组一个,以便能够对其进行切片。但这基本上会使我的记忆加倍,据我所知。
注意:这个愚蠢的例子并不明显,但是能够通过单个字典中的键访问条目在我的应用程序中是一个巨大的优势。
python - 如何使用 Python 和 Pandas 从 Salesforce 的有序字典层次结构中提取数据
概括
简而言之,我需要从包含单个 OrderedDicts 的 pandas 系列中提取数据。到目前为止进展很好,但我现在遇到了一个绊脚石。
当我在 Stack Overflow 上为演示目的定义自己的数据框时,我可以使用 OrderedDict 索引功能在 OrderedDict 中查找我所需要的数据。但是,当我处理未在数据框中定义 OrderedDict 的真实数据时,我必须使用函数通过标准 Json 包解析 OrderedDict。
我正在使用的 OrderedDicts 有多个嵌套层次结构,可以操纵通常的...
上面的代码将导致'Telephone Sales'
. 但是,这仅在我为示例手动定义 DataFrame 时才有效,因为我必须使用 collections.OrderedDict 包而无需解析。
背景
下面是我为 StackOverflow 准备的一些代码,可以粗略地展示我的问题。
在上面的代码中,我有一个函数 extract_odict_item() ,只要我指定我想要的内容,我就可以使用它从数据框中的每个 OrderedDict 中提取数据并将其放入一个新列中。但是,我希望能够通过 *args 指定尽可能多的参数来表示我想遍历多少个嵌套并从最终键中提取值。
预期成绩
我希望能够使用下面的函数来接受多个参数并像这样创建一个嵌套索引选择器......
所以如果我打电话给 extract_odict_item
extract_odict_item(odict, 'item1', 'item2', 'item3')
它应该返回final_data['item1']['item2']['item3']
我可能对此过于复杂,但我想不出其他任何东西,或者这在 Python 中是否可行。
回答
我能够使用递归函数来处理从orderdict中选择我需要的数据