【问题标题】:Split dictionary into individual columns in a df [duplicate]将字典拆分为df中的各个列[重复]
【发布时间】:2018-02-18 06:43:56
【问题描述】:

我有以下df,其值为字典:

                    tests
SO4  {'Mon': 6, 'Tues': 6, 'Wed': 7}
CH3  {'Mon': 0, 'Tues': 8, 'Wed': 10}

我想得到想要的输出:

         0        1          2
SO4  'Mon': 6 'Tues': 6 'Wed': 7
CH3  'Mon': 0 'Tues': 8 'Wed': 10

如何将字典拆分成单独的列?

我已经看到使用rsplit 函数拆分字符串的列,但不确定如何在字典作为值的情况下应用它。

【问题讨论】:

    标签: pandas


    【解决方案1】:

    我认为更好的是使用:

    df = pd.DataFrame(df['tests'].values.tolist(), index=df.index)
    print (df)
         Mon  Tues  Wed
    SO4    6     6    7
    CH3    0     8   10
    

    但如果真的需要它(但 dicts 在设计上是不可排序的,所以可能会得到不同的输出):

    df = df['tests'].astype(str).str.strip('{}').str.split(', ', expand=True)
    print (df)
                0          1          2
    SO4  'Mon': 6   'Wed': 7  'Tues': 6
    CH3  'Mon': 0  'Wed': 10  'Tues': 8
    

    【讨论】:

    • 是的,但是使用apply(pd.Series)会很慢,所以最好不要。
    • 是的,但速度有点慢。最胖的是df['tests'].values.tolist()
    • 啊,谢谢,没想到。
    猜你喜欢
    • 2015-01-01
    • 2021-09-09
    • 2020-03-21
    • 2011-05-04
    • 2020-08-16
    • 1970-01-01
    • 2023-02-16
    • 2010-12-19
    • 2021-07-16
    相关资源
    最近更新 更多