繁体   English   中英

Python Pandas,一个字典列,为每个键/值对创建新行

[英]Python Pandas, one dict column, create new rows for each key/value pair

我有一个大约 500000 行的 Pandas DataFrame,格式如下:

**ID  Name  Tags**
4345  Bill  {'circle:blue', 'background:orange', 'Type':12}

对于更直接的数据分析,我想转换为:

**ID   Name  Key         Value** 
4345   Bill  Circle      Blue
4345   Bill  Background  Orange
4345   Bill  Type        12

我找到了一个可以拆分每行一个键/值的答案: Python Pandas: How to split a column of a dataframe of a dataframe ,但我很遗憾地无法扩展它以执行我上面的要求。

我可能可以用一些标准循环来管理这个,但我希望有一种优雅而高效的 Pandas 方法?

基于这个答案,你可以做类似的事情:

>>> df_tags = df.apply(lambda x: pd.Series(x['Tags']),axis=1).stack().reset_index(level=1, drop=False)
>>> df_tags.columns = ['Key', 'Value']
>>> df_tags
          Key   Value
0        Type      12
0  background  orange
0      circle    blue
>>> df.drop('Tags', axis=1).join(df_tags)
     ID  Name         Key   Value
0  4345  Bill        Type      12
0  4345  Bill  background  orange
0  4345  Bill      circle    blue

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM