假设我有以下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会出现多次来重新创建原始数据帧,但这证明太多了.

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

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

我相信有更好的方法可以做到这一点.

推荐答案

try 以下操作:

(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相关问答推荐

我对打乒乓球有问题

Inquirer库不适用于Pyterfly

查找3D数组中沿一个轴的相同值序列的长度(与行程长度编码相关)

隐藏QComboBox的指示器(qdarkstyle)

按日期和组增量计算总价值

如何判断. text文件中的某个字符,然后读取该行

两极:如何分割一个大 pyramid 并并行保存每个

Odoo -无法比较使用@api.depends设置计算字段的日期

根据网格和相机参数渲染深度

比较2 PD.数组的令人惊讶的结果

Python 约束无法解决n皇后之谜

PMMLPipeline._ fit()需要2到3个位置参数,但给出了4个位置参数

加速Python循环

当从Docker的--env-file参数读取Python中的环境变量时,每个\n都会添加一个\'.如何没有额外的?

如何在solve()之后获得症状上的等式的值

如何获取numpy数组的特定索引值?

如何从pandas的rame类继承并使用filepath实例化

Pandas计数符合某些条件的特定列的数量

如何在FastAPI中为我上传的json文件提供索引ID?

Maya Python脚本将纹理应用于所有对象,而不是选定对象