我有以下数据框:
import pandas as pd
import io
from scipy import stats
temp=u"""probegenes,sample1,sample2,sample3
1415777_at Pnliprp1,20,0.00,11
1415805_at Clps,17,0.00,55
1415884_at Cela3b,47,0.00,100"""
df = pd.read_csv(io.StringIO(temp),index_col='probegenes')
df
看起来像这样
sample1 sample2 sample3
probegenes
1415777_at Pnliprp1 20 0 11
1415805_at Clps 17 0 55
1415884_at Cela3b 47 0 100
我也想使用SCIPY执行row-zscore计算。使用此代码,我得到:
In [98]: stats.zscore(df,axis=1)
Out[98]:
array([[ 1.18195176, -1.26346568, 0.08151391],
[-0.30444376, -1.04380717, 1.34825093],
[-0.04896043, -1.19953047, 1.2484909 ]])
如何方便地将列和索引名称重新附加到该结果?
在一天结束时。它看起来像:
sample1 sample2 sample3
probegenes
1415777_at Pnliprp1 1.18195176, -1.26346568, 0.08151391
1415805_at Clps -0.30444376, -1.04380717, 1.34825093
1415884_at Cela3b -0.04896043, -1.19953047, 1.2484909
的文档pd.DataFrame
具有:
data:numpy ndarray(结构化或均质化),dict或DataFrame Dict可以包含Series,数组,常量或类似列表的对象index:用于生成结果帧的Index或类似array的Index。如果没有输入数据的索引信息部分并且没有提供索引,则默认为np.arange(n)列:用于结果帧的索引或类似数组的列标签。如果未提供列标签,则默认为np.arange(n)
所以,
pd.DataFrame(
stats.zscore(df,axis=1),
index=df.index,
columns=df.columns)
应该做的工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句