python - 如何从数据框中提取列并将其附加到行,同时保持其他列不变
问题描述
如何从熊猫数据框中提取一列将其附加到行,同时保持其他列相同。
这是我的示例数据集。
import pandas as pd
import numpy as np
df = pd.DataFrame({'ID': np.arange(0,5),
'sample_1' : [5,6,7,8,9],
'sample_2' : [10,11,12,13,14],
'group_id' : ["A","B","C","D","E"]})
我正在寻找的输出是:
df2 = pd.DataFrame({'ID': [0, 1, 2, 3, 4, 0, 1, 2, 3, 4],
'sample_1' : [5,6,7,8,9,10,11,12,13,14],
'group_id' : ["A","B","C","D","E","A","B","C","D","E"]})
我试图使用切片数据框和连接,pd.concat
但它给出了 NaN 值。
我的原始数据集很大。
解决方案
您可以使用以下方法执行此操作stack
:将索引设置为您不想修改的列,调用堆栈,按“示例”列排序,然后重置您的索引:
df.set_index(['ID','group_id']).stack().sort_values(0).reset_index([0,1]).reset_index(drop=True)
ID group_id 0
0 0 A 5
1 1 B 6
2 2 C 7
3 3 D 8
4 4 E 9
5 0 A 10
6 1 B 11
7 2 C 12
8 3 D 13
9 4 E 14
推荐阅读
- pdf - 如何通过谷歌脚本将谷歌驱动器中的PDF转换为文本
- typescript - 在 TypeScript 中用 `{}` 标识什么类型
- three.js - 三是 - 如何限制 OrbitControls for OrthographicCamera 中的平移,以便对象(纹理图像)始终在场景中
- javascript - 将鼠标悬停在按钮上时显示文本 JavaScript
- amazon-web-services - dynamodb.transactWriteItems 不是 Lambda 上的函数错误,但在使用 VS Code 时不是
- php - PHP 如何插入嵌套元素 Libreoffice 样式
- r - 有缺失值的条件语句
- mysql - 如何使用 phpMyAdmin 为具有默认空格的 Null 值字段导入 ods 文件
- java - 如何摆脱 KVM VM 中 java 和 php 进程之间的进程间通信中的 tcp-ip 发送延迟
- java - 如何解决由 JAXB 语句引起的异常?