python - 如何在 Pandas 列中提取 JSON 数据并通过堆叠来构建它?

标签 python json pandas

假设我有以下 DataFame:

df = pd.DataFrame(
    {
        'id':[112, 130, 200],
        'name':['Lara', 'Kasia', 'Rocco'],
        'level/income':[{1:400, 2:800}, {1:100}, {1:1000, 2:2000, 3:5000}]
    }
)

df

我希望这是最终结果:

df2

我尝试自己做到这一点,但我失败了。我试图通过查找哪个 idname 会出现多次来重新创建原始 DataFrame,但事实证明这太多了。

len_need = []
id2 = []
name2 = []
level2 = []
income2 = []

for index,row in df.iterrows():
    len_need.append(len(row['level/income']))

我确信有更好的方法来做到这一点。

最佳答案

试试这个:

(df.set_index(['id', 'name'])
 .squeeze()
 .apply(pd.Series)
 .rename_axis('level', axis=1)
 .stack()
 .reset_index(name='income'))

>>>
    id  name    level   income
0   112 Lara    1       400.0
1   112 Lara    2       800.0
2   130 Kasia   1       100.0
3   200 Rocco   1       1000.0
4   200 Rocco   2       2000.0
5   200 Rocco   3       5000.0

关于python - 如何在 Pandas 列中提取 JSON 数据并通过堆叠来构建它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72610834/

相关文章:

json - 带有 Json 数组拆分的 Apache Camel

python - 创建 df 以给定格式生成 json

python - 如何用逗号连接 Pandas 数据框的两列?

python - 使用 xarray 添加和使用附加坐标

python - 将 numpy 数组值从零更改为 -1

python - 循环数据框列python

javascript - JS : Serializing an object with methods (or an instance) to json/string without losing the methods

json - Dart - 如何 _InternalLinkedHashMap<String, dynamic> 转换为 Map<String, dynamic>?

python - 想要确认 Python itertools.islice 中 islice 这个名字的含义

python - 在支持 Multi-Tenancy 的 Django 中正确加载 Keras 模型