我正在执行图像分析,其中输出具有以下格式: format 1
其中“切片”指的是哪个样本对应
但我需要它像这样
其中每一行对应一个样本
我试过这个代码:
df['g'] = (df.groupby('Slice').cumcount() + 1).astype(str)
df1 = df.set_index(['Slice','g']).unstack()
df1.sort_index(axis=1,level=1, inplace=True)
df1.columns = [''.join(col) for col in df1.columns]
df1.reset_index(inplace=True)
df1 = df1.set_index("Slice")
但它对每个样本的第一个值进行分组,我不需要它,我不知道如何修复它。
答案 0 :(得分:0)
试试这个:
#dataframe
data = {
'mean': np.random.randint(1590, 1650, 6),
'slice': [1, 1, 1, 2, 2, 2]
}
df = pd.DataFrame(data)
使用 groupby
和 pivot
:
df['col'] = (df.groupby('slice', as_index=False)['slice'].cumcount()+1).astype(str).radd('Mean')
df.pivot(index='slice', columns='col').droplevel(axis=1, level=0)
输出:
col Mean1 Mean2 Mean3
slice
1 1646 1621 1620
2 1630 1632 1621