Python 数据排序/转置

Python 数据排序/转置,python,pandas,visual-studio,dataframe,Python,Pandas,Visual Studio,Dataframe,我有一个以日期时间(第0列)为索引的数据框。示例如下所示: DateTime Category Value 16:24:00 A 51 16:24:00 B 52 16:24:00 C 53 16:24:00 D 54 17:28:24 A 71 17:28:24 B 72 17:28:24 C 73 17:28:24 D 74 我需要转换数据,以

我有一个以日期时间(第0列)为索引的数据框。示例如下所示:

DateTime  Category  Value
16:24:00    A       51
16:24:00    B       52
16:24:00    C       53
16:24:00    D       54
17:28:24    A       71
17:28:24    B       72
17:28:24    C       73
17:28:24    D       74
我需要转换数据,以便“Category”列1成为我的列标题,而value仍然是关于datetime的因变量。我正在寻找如下所示的输出

DateTime  A  B  C  D  
16:24:00  51 52 53 54 
17:28:24  71 72 73 74 

将列设置为索引后,可以使用
unstack

ddf = df.set_index(['DateTime','Category']).unstack().reset_index()
ddf.columns = ['DateTime','A','B','C','D']
print(ddf)

或者您可以尝试使用以下难看的代码:

new = df.groupby('DateTime').apply(lambda x: x.T).reset_index(level=[0,1]).groupby('DateTime').last().drop('level_1', axis=1)
new.columns = df['Category'].drop_duplicates().sort_values().tolist()
new = new.reset_index()
print(new)
输出:

   DateTime   A   B   C   D
0  16:24:00  51  52  53  54
1  17:28:24  71  72  73  74

你正在寻找你的数据框架,在这个主题上有100个问题。类似的方法可以工作,pd.pivot(df.reset_index(),index='DateTime',columns='Category',values='Value')。reset_index()
   DateTime   A   B   C   D
0  16:24:00  51  52  53  54
1  17:28:24  71  72  73  74