【发布时间】:2021-10-04 23:32:14
【问题描述】:
我们面临的挑战是我们有一个数据框patents_original,其中列由字典列表组成。每个字典都包含重复出现的键,例如'inventor_last_name'。
[{'inventor_last_name': 'Han', 'inventor_first_name': 'Shu-Jen', 'inventor_country': 'US', 'inventor_key_id': '104654'}, {'inventor_last_name': 'Chen', 'inventor_first_name': 'Chia-Yu', 'inventor_country': 'US', 'inventor_key_id': '367934'}]
我们正在寻找仅包含重复键项的列。这样一行中的每个'inventor_last_name' 都列在一个名为'inventor_last_name' 的新列中(当包含多个投资者时,他们的所有姓氏都应列在一个名为“inventor_last_name”的列中)。对于下面的分析,不改变行从属关系是非常重要的。新的数据框随后应包含 4 个新列,分别称为 'inventor_last_name'、'inventor_first_name'、'inventor_country' 和 'inventor_key_id'(先前字典的键)。
堆栈溢出提供了这个代码片段来创建一个新列并用键"inventor_last_name"的项目填充它:
patents_inventors["inventor_last_name"] = [sub_dict["inventor_last_name"] for sub_dict in patents_inventors["inventors"]]
出现以下错误:
patents_inventors["inventor_last_name"] = [ sub_dict["inventor_last_name"] for sub_dict in patents_inventors["inventors"]]
Traceback (most recent call last):
File "<ipython-input-46-2c776eb8a76d>", line 1, in <module>
patents_inventors["inventor_last_name"] = [ sub_dict["inventor_last_name"] for sub_dict in patents_inventors["inventors"]]
File "<ipython-input-46-2c776eb8a76d>", line 1, in <listcomp>
patents_inventors["inventor_last_name"] = [ sub_dict["inventor_last_name"] for sub_dict in patents_inventors["inventors"]]
TypeError: string indices must be integers
对于我们来说,作为绝对的 Python 爱好者,Python 似乎不会将该行解释为字典列表。将该列传输到数据类型列表或字典的所有尝试都失败了。
如果有帮助,我可以为您提供可编辑 Excel 工作表的链接!
这是我们关于堆栈溢出的第一篇文章,所以如果它是这样的,请多多包涵。我们非常感谢您的帮助!
编辑:
列名是:
patent_number
patent_title
patent_abstract
patent_date
patent_num_combined_citations
patent_num_cited_by_us_patents
inventors
assignees
applications
cited_patents
citedby_patents
cpcs
wipos
由于我不太确定如何缩短数据框以在此处发布,因此我将图片链接到相应的 Excel 工作表。希望这也有帮助。
【问题讨论】:
-
不清楚数据框的实际结构。请澄清,添加一些样本等。
-
数据框本身的形状为
[36015 rows x 14 columns],主要包含对象形式的专利数据。由于这些列的结构与发明人的方式相似,因此该列针对剩余的 df 进行了描述。希望这会有所帮助! -
列名是什么?如果您可以创建一个复制问题的小型人工样本,那将是最好的。使其可复制粘贴。
-
嗨 Timus,我不熟悉在堆栈溢出时发布 df,因为 df 太大了stackoverflow.com/questions/20109391/… 帮不了我那么多。我编辑了这个问题,希望对您有所帮助。提前谢谢!
标签: python list dataframe dictionary split