我的Pandas 数据框中有两列是这样的:

ID          Value1      Value2
ID1         1.00        0.12
ID2         2.00        0.98
ID3         3.00        0.41
ID4         4.00        0.69

我想合并它们,以便将第2列中的相应值合并到第1列:

ID          Value1      
ID1         1.00        
Value2      0.12
ID2         2.00        
Value2      0.98
ID3         3.00        
Value2      0.41
ID4         4.00        
Value2      0.69

这似乎是一个简单的逻辑,但我就是弄不明白这一点.有什么 idea /帮手吗? 我深表感激.

推荐答案

您可以对列进行melt和后处理:

out = (df
   .melt('ID', ignore_index=False)
   .assign(ID=lambda d: d['ID'].mask(d['variable'].eq('Value2'), 'Value2'))
   .sort_index().drop(columns='variable')
   .rename(columns={'value': 'Value1'})
)

输出:

       ID  Value1
0     ID1    1.00
0  Value2    0.12
1     ID2    2.00
1  Value2    0.98
2     ID3    3.00
2  Value2    0.41
3     ID4    4.00
3  Value2    0.69

Python相关问答推荐

提取两行之间的标题的常规表达

将整组数组拆分为最小值与最大值之和的子数组

如何让Flask 中的请求标签发挥作用

形状弃用警告与组合多边形和多边形如何解决

如何在Python中找到线性依赖mod 2

CommandeError:模块numba没有属性generated_jit''''

在Python 3中,如何让客户端打开一个套接字到服务器,发送一行JSON编码的数据,读回一行JSON编码的数据,然后继续?

为什么if2/if3会提供两种不同的输出?

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

如何使用使用来自其他列的值的公式更新一个rabrame列?

Pandas:填充行并删除重复项,但保留不同的值

在Python中从嵌套的for循环中获取插值

不允许 Select 北极滚动?

如何强制向量中的特定元素在Gekko中处于优化解决方案中

Autocad使用pyautocad/comtypes将对象从一个图形复制到另一个图形

如何使用大量常量优化代码?

将相应的值从第2列合并到第1列(Pandas )

高效地计算数字数组中三行上三个点之间的Angular

在聚合中使用python-polars时如何计算模式

在不降低分辨率的情况下绘制一组数据点的最外轮廓