以所需格式打印数据帧

2024-09-24 22:23:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下表格中的数据:

Sample  Cohort  CName  Intensity
S1      a       C1     22.34
S2      a       C2     17.34

我想用这个表格打印出来

Cohort Intensity1 Intensity2
a      22.34      17.34 

请建议怎么做。我是熊猫的初学者


Tags: 数据sample建议表格cnamecohortc2s2
1条回答
网友
1楼 · 发布于 2024-09-24 22:23:15

我想你需要^{}

df = df.pivot(index='Cohort', columns='Sample', values='Intensity')
print (df)
Sample     S1     S2
Cohort              
a       22.34  17.34

或:

df = df.pivot(index='Cohort', columns='CName', values='Intensity')
print (df)
CName      C1     C2
Cohort              
a       22.34  17.34

最后:

df.columns = ['Intensity' + str(x + 1) for x in np.arange(len(df.columns))]
print (df)
        Intensity1  Intensity2
Cohort                        
a            22.34       17.34

但可能需要:

print (df)
  Sample Cohort CName  Intensity
0     S1      a    C1      22.34
1     S2      a    C2      17.34
2     S1      b    C1      20.00
3     S1      b    C1      10.00

df['g'] = df.groupby('Cohort').cumcount()
df = df.pivot(index='Cohort', columns='g', values='Intensity')
print (df)
g           0      1
Cohort              
a       22.34  17.34
b       20.00  10.00

同:

df = pd.pivot(index=df['Cohort'],
              columns=df.groupby('Cohort').cumcount(),
              values=df['Intensity'])
print (df)
            0      1
Cohort              
a       22.34  17.34
b       20.00  10.00

备选方案:

df['g'] = df.groupby('Cohort').cumcount()
df = df.set_index(['Cohort', 'g'])['Intensity'].unstack(fill_value=0)
print (df)
g           0      1
Cohort              
a       22.34  17.34
b       20.00  10.00

相关问题 更多 >