Python 3.x 如何从表中获取每个值的百分比?
我有一个5列的表格:AWA、REM、S1、S2和SWS。我计算了每列和每行的总和。以及这些数值的百分比。但是为了得到百分比,我重复了同样的一行5次。 如果有超过5列,是否有改进的方法 这是我的代码,我还附上了一张图片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)
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)