【问题标题】:How do I separate a dictionary that has two keys into two seperate new columns?如何将具有两个键的字典分成两个单独的新列?
【发布时间】:2019-05-12 03:05:28
【问题描述】:

我正在使用 Pandas,并且我有一列有一个带有两个键(a'11' 和 a'10')的字典。

这就是我所拥有的

Id  (dictionary1, dictionary2)
0   {a'11': [a'255', a'258'], a'10': [a'224', a'222']}  
1   {a'11': [a'262', a'261'], a'10': [a'214', a'212']}  
2   {a'11': [a'241', a'238'], a'10': [a'244', a'202']}  

我需要将此列分成两个新列,一列具有 a'10' 值,一列具有 a'11' 值。

执行此操作的正确代码是什么?

【问题讨论】:

  • a'10' 怎么可能是钥匙?
  • a'11'等是什么?这种表示法在 Python 中是非法的。
  • 如何去掉每个键和值前面的“a”以获得正确的符号?

标签: python pandas jupyter-notebook


【解决方案1】:

您可以使用str 访问器对包含可迭代对象的Series 进行索引:

import pandas as pd

df = pd.DataFrame([[{'a': 1, 'b':2}], [{'a': 3, 'b': 4}]], columns=['d'])

print(df, '\n')
print(df['d'].str['a'])

输出:

                  d
0  {'a': 1, 'b': 2}
1  {'a': 3, 'b': 4} 

0    1
1    3

【讨论】:

    【解决方案2】:

    tolistDataFrame 一起使用

    pd.DataFrame(df.d.tolist())
               10          11
    0  [224, 222]  [255, 258]
    1  [224, 222]  [255, 258]
    2  [224, 222]  [255, 258]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-30
      • 1970-01-01
      相关资源
      最近更新 更多