Python 数据排序/转置
我有一个以日期时间(第0列)为索引的数据框。示例如下所示: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 我需要转换数据,以
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