Python 3.x 如何从表中获取每个值的百分比?

Python 3.x 如何从表中获取每个值的百分比?,python-3.x,pandas,Python 3.x,Pandas,我有一个5列的表格:AWA、REM、S1、S2和SWS。我计算了每列和每行的总和。以及这些数值的百分比。但是为了得到百分比,我重复了同样的一行5次。 如果有超过5列,是否有改进的方法 这是我的代码,我还附上了一张图片 import pandas as pd df = pd.DataFrame(TABLA, columns=('AWA', 'REM', 'S1', 'S2', 'SWS')) df.index='s' + (df.index+1).astype(str)

我有一个5列的表格:AWA、REM、S1、S2和SWS。我计算了每列和每行的总和。以及这些数值的百分比。但是为了得到百分比,我重复了同样的一行5次。 如果有超过5列,是否有改进的方法

这是我的代码,我还附上了一张图片

    import pandas as pd

    df = pd.DataFrame(TABLA, columns=('AWA', 'REM', 'S1', 'S2', 'SWS'))
    df.index='s' + (df.index+1).astype(str) 
    df['xSubject'] = df.sum(axis=1) #sums each colummn

    ######Here starts the repetition:
    df['AWA%'] = df['AWA']/df['AWA'].sum()*100
    df['REM%'] = df['REM']/df['REM'].sum()*100
    df['S1%'] = df['S1']/df['S1'].sum()*100
    df['S2%'] = df['S2']/df['S2'].sum()*100
    df['SWS%'] = df['SWS']/df['SWS'].sum()*100
    df['xSubject%'] = df['xSubject']/df['xSubject'].sum()*100
    ######Here ends the repetition:

    df.loc['xStage'] = df.sum() #sums each row

    df

使用
pd.concat
进行重建

pd.concat([df,
           pd.DataFrame(df.div(df.sum()).values * 100,
                        columns=df.columns.values + '%')],
          axis=1)

考虑
pd.DataFrame
df

df = pd.DataFrame(np.random.rand(10, 5),
                  columns=('AWA', 'REM', 'S1', 'S2', 'SWS'))

df

以及
%
计算

df.div(df.sum())

然后使用上面的代码

pd.concat([df,
           pd.DataFrame(df.div(df.sum()).values * 100,
                        columns=df.columns.values + '%')],
          axis=1)

我还需要最后一行中每列的总和
df.loc['xEstado']=df.sum()
不再起作用,也不再起作用:
xEstado=df.sum()
df=df.append(xEstado,ignore_index=True)