程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何将值列表转换为熊猫列?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如何将值列表转换为熊猫列??

开发过程中遇到如何将值列表转换为熊猫列?的问题如何解决?下面主要结合日常开发的经验,给出你关于如何将值列表转换为熊猫列?的解决方法建议,希望对你解决如何将值列表转换为熊猫列?有所启发或帮助;

我有一个如下所示的 df,我想将值转换为列(枢轴)操作。我无法执行,因为我的数据在列表中。

我的示例输入有两列(分数和类别)。这些列是有序值。即,第 19 类的分数为 0.97,而第 0 类的分数为 0.77。我想转换我的 df,使类值成为列名,并且相应的分数将在相应的列中。

样本输入:

    file_name        scores                         classes  
0  voc_32.jpg  [0.97,0.77]                     [19.0,0.0]   
1  voc_22.jpg  [0.92,0.64,0.83,0.55]         [17.0,1.0,11.0,11.0]   

预期输出:

    file_name  0      1     11           17     19
0  voc_32.jpg  0.77                            0.97 
1  voc_22.jpg         0.64  [0.83,0.55]       0.92

任何帮助都是可观的。

解决方法

在列表推导中创建字典列表并传递给DataFrame构造函数,最后通过DataFrame.join添加到原始字典:

df1 = (pd.DataFrame([Dict(zip(b,a)) for a,b in zip(df.scores,df.classes)],index=df.indeX).sort_index(axis=1).rename(columns=int))
df2 = df[['file_name']].join(df1)

使用 DataFrame.pop 删除列的类似解决方案:

df1 = (pd.DataFrame([Dict(zip(b,b in zip(df.pop('scores'),df.pop('classes'))],index=df.indeX).sort_index(axis=1).rename(columns=int))
df2 = df.join(df1)
print (df2)
    file_name     0     1    11    17    19
0  voc_32.jpg  0.77   NaN   NaN   NaN  0.97
1  voc_22.jpg   NaN  0.64  0.83  0.92   NaN

编辑:对于列表,如果多个类使用 Series.explode 作为 flattem,然后在 GroupBy.agg 中聚合自定义函数并通过 SerieS.Unstack 进行重塑:

f = lambda x: list(X) if len(X) > 1 else x
df1 = (df.apply(pd.Series.explodE)
         .groupby(['file_name','classes'])['scores']
         .agg(f)
         .unstack()
         .rename(columns=int))
print (df1)
classes       0     1             11    17    19
file_name                                       
voc_22.jpg   NaN  0.64  [0.83,0.85]  0.92   NaN
voc_32.jpg  0.77   NaN           NaN   NaN  0.97

df2 = df[['file_name']].join(df1,on='file_name')
print (df2)

    file_name     0     1            11    17    19
0  voc_32.jpg  0.77   NaN           NaN   NaN  0.97
1  voc_22.jpg   NaN  0.64  [0.83,0.85]  0.92   NaN

大佬总结

以上是大佬教程为你收集整理的如何将值列表转换为熊猫列?全部内容,希望文章能够帮你解决如何将值列表转换为熊猫列?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。