因此,我在pandas中有以下DataFrame:
Column 1 | Column 2
Name | A
Number | B
Age | C
Name | D
Number | E
Age | F每个名称,编号和年龄分组在一起都与一个特征相关,并在整个日期框中重复。我想知道用以下格式获取它的最好方法是什么?
Name | Number | Age
Feature 1 A | B | C
Feature 2 D | E | F任何帮助都将不胜感激,因为我对我将使用的函数或方法感到困惑!
发布于 2021-10-27 15:45:05
这是一个轴心,但您首先需要创建一个标签来将3行的集合分组在一起。如果数据足够干净,以至于DataFrame总是按Name,Number,Age,Name,Number,Age,...排序,您可以cumsum一个布尔序列,检查哪些行是'Name‘,以便将它们分组在一起。
df['index'] = 'Feature ' + df['Column 1'].eq('Name').cumsum().astype(str)
# Column 1 Column 2 index
#0 Name A Feature 1
#1 Number B Feature 1
#2 Age C Feature 1
#3 Name D Feature 2
#4 Number E Feature 2
#5 Age F Feature 2
df = (df.pivot(index='index', columns='Column 1', values='Column 2')
.rename_axis(index=None, columns=None))
# Age Name Number
#Feature 1 C A B
#Feature 2 F D E或者,您可以根据DataFrame的长度将每三行分组在一起,并使用整数除法。
import numpy as np
df['index'] = np.char.add(['Feature '], (np.arange(len(df))//3+1).astype(str))https://stackoverflow.com/questions/69741519
复制相似问题