Python 在Pandas中将单元格分解为多行

Python 在Pandas中将单元格分解为多行,python,pandas,Python,Pandas,如何将单元格中的内容分解为多行 ID CODES A {"1407273790":5,"1801032636":20,"1174813554":1,"1215470448":2,"1053754655":4,"1891751228":1} B {"1497066526":19,"1639360563":16,"1235

如何将单元格中的内容分解为多行

ID  CODES
A   {"1407273790":5,"1801032636":20,"1174813554":1,"1215470448":2,"1053754655":4,"1891751228":1}
B   {"1497066526":19,"1639360563":16,"1235107087":11,"1033522925":18}
C   {"1154348191":8,"1568410355":4}
如何将“”中的代码分解为多行? 我正在查看的输出如下表所示

ID  CODES
A   1407273790
A   1801032636
A   1174813554
A   1215470448
A   1053754655
A   1891751228
B   1497066526
B   1639360563
B   1235107087
B   1033522925
C   1154348191
C   1568410355

获取
键()后,可以使用
分解
keys()
返回一个
元组
,因此我用
[*]
将其转换为列表,这是
分解
所需的格式。您还可以使用
list()

根据SammyWemmy的评论,您可以尝试以下两种方法的性能:

%timeit df['CODES'].apply(lambda x: list(x.keys()))
%timeit [entry.keys() for entry in df.CODES]

列表理解有助于提高速度,或者至少作为一种替代方法。同样的结束点:
df.assign(code=[entry.keys()用于df.code中的条目]).explode(“code”)
@David Erickson和sammywemmy对此表示感谢。非常感谢你。
%timeit df['CODES'].apply(lambda x: list(x.keys()))
%timeit [entry.keys() for entry in df.CODES]