小编Ric*_*ckB的帖子

将 Pandas 中的字典条目解压到数据框中

我有一个数据框,其中一列中有一个字典

import pandas as pd
import numpy as np

def generate_dict():
    return {'var1': np.random.rand(), 'var2': np.random.rand()}

data = {}
data[0] = {}
data[1] = {}
data[0]['A'] = generate_dict()
data[1]['A'] = generate_dict()

df = pd.DataFrame.from_dict(data, orient='index')
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

我想将字典中的键/值对解压缩到一个新的数据框中,其中每个条目都有自己的行。我可以通过遍历行并附加到新的 DataFrame 来做到这一点:

def expand_row(row):
    df_t = pd.DataFrame.from_dict({'value': row.A})
    df_t.index.rename('row', inplace=True)
    df_t.reset_index(inplace=True)
    df_t['column'] = 'A'
    return df_t

df_expanded = pd.DataFrame([])
for _, row in df.iterrows():
    T = expand_row(row)
    df_expanded = df_expanded.append(T, ignore_index=True)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

这相当慢,而且我的应用程序对性能至关重要。我认为这是可能的df.apply。但是,当我的函数返回一个 DataFrame 而不是一个系列时,只需执行

df_expanded = df.apply(expand_row)
Run Code Online (Sandbox Code Playgroud)

不太工作。执行此操作的最高效方法是什么?

提前致谢。

python dictionary pandas

3
推荐指数
1
解决办法
3655
查看次数

标签 统计

dictionary ×1

pandas ×1

python ×1