首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用新的存在/不存在列堆叠pandas数值列

使用新的存在/不存在列堆叠pandas数值列
EN

Stack Overflow用户
提问于 2021-02-19 03:23:58
回答 1查看 21关注 0票数 1

我试图在一列中堆叠两列,但我希望保留一个布尔值字段,用于指示新值来自何处。使用pivot和melt并没有取得太大的成功。任何帮助都是有用的。下面是一个小例子

代码语言:javascript
复制
param | accuracy | accuracy_with_reg
----------------------------
4     |  0.813    | 0.934
5     |  0.456    | 0.654
6     |  0.342    | 0.564  

添加到以下内容

代码语言:javascript
复制
param | accuracy | regularized 
----------------------------
4     |  0.813    | False
5     |  0.456    | False
6     |  0.342    | False
4     |  0.934    | True
5     |  0.654    | True
6     |  0.654    | True

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-19 03:44:59

您可以像这样使用melt

代码语言:javascript
复制
pd.melt(df, id_vars=['param'], value_vars=['accuracy', 'accuracy_with_reg'],
        var_name='regularized', value_name='accuracy_val')

   param        regularized  accuracy_val
0      4           accuracy         0.813
1      5           accuracy         0.456
2      6           accuracy         0.342
3      4  accuracy_with_reg         0.934
4      5  accuracy_with_reg         0.654
5      6  accuracy_with_reg         0.564

如果您希望在正则化的列中使用True或False,那么您可以使用不同的方法,但我会继续在前面的列中使用rename

代码语言:javascript
复制
pd.melt(df.rename(columns={'accuracy':False, 'accuracy_with_reg':True}), 
        id_vars=['param'], value_vars=[False, True],
        var_name='regularized', value_name='accuracy')
   param regularized  accuracy
0      4       False     0.813
1      5       False     0.456
2      6       False     0.342
3      4        True     0.934
4      5        True     0.654
5      6        True     0.564
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66266817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档