【问题标题】:How do I prevent my medians from being rounded?如何防止我的中位数被舍入?
【发布时间】:2016-12-09 10:22:43
【问题描述】:

我有代码计算 z 分数的中位数,范围从 0 到 1。Python 将所有这些数字四舍五入为 0。我如何确保这些数字不四舍五入?

这是我计算中位数的代码行:

gene_medians = GCT_object.data_df.median(axis=1)
import matplotlib.pyplot as plt
import parse_gctoo

def histo_plotter(file, plot_title, ax):
    # read in file as string
    GCT_object = parse_gctoo.parse(file)
    # computing median of rows in data_df
    gene_medians = GCT_object.data_df.median(axis=1)
    unrounded_gm = format(gene_medians, ".7f")
    # making histogram of medians
    print gene_medians'

.describe 的结果: /Users/eibelman/miniconda2/envs/josh_env/bin/python2.7 /Users/eibelman/Analysis/ComparingMedianGeneExpressionDifCellLines.py cid CXA061_SKL_48H_X1_B29:A03 CXA061_SKL_48H_X1_B29:A04 \ 计数 978.000000 978.000000
平均 0.072729 0.078196
标准 2.909874 3.086884
最小 -18.698500 -63.467600
25% -0.742375 -0.422625
50% -0.030950 0.205600
75% 0.656550 0.885275
最大 29.803200 27.347300

cid CXA061_SKL_48H_X1_B29:A05 CXA061_SKL_48H_X1_B29:A06 \ 计数 978.000000 978.000000
平均 0.036843 0.002883
标准 2.471833 2.576255
最小 -17.170500 -26.433600
25% -0.653925 -0.674250
50% -0.081250 -0.070600
75% 0.548900 0.561250
最大 31.356600 34.249100

cid CXA061_SKL_48H_X1_B29:A07 CXA061_SKL_48H_X1_B29:A08 \ 计数 978.000000 978.000000
平均 0.017625 0.096359
标准 2.012941 2.671352
最小 -18.651800 -27.609600
25% -0.711400 -0.730225
50% -0.048900 -0.012100
75% 0.585300 0.670100
最大 23.690800 27.509200

cid CXA061_SKL_48H_X1_B29:A09 CXA061_SKL_48H_X1_B29:A10 \ 计数 978.000000 978.000000
均值 -0.024301 -0.048213
标准 3.317470 3.431853
最小 -70.184100 -43.255000
25% -0.556725 -0.916150
50% 0.009950 -0.071200
75% 0.629525 0.836525
最大 32.083000 36.831200

cid CXA061_SKL_48H_X1_B29:A11 CXA061_SKL_48H_X1_B29:A12 \ 计数 978.000000 978.000000
平均 0.040646 -0.013686
标准 2.568421 3.296173
最小 -17.213400 -42.862500
25% -0.636600 -0.719425
50% -0.032850 -0.033950
75% 0.593925 0.680675
最大 26.524500 50.334500

cid ... CXA061_SKL_48H_X1_B29:P15 \ 数 ... 978.000000
平均... -0.006012
标准... 2.564106
最小 ... -20.208400
25% ... -0.706475
50% ... -0.136300
75% ... 0.557025
最大 ... 27.509500

cid CXA061_SKL_48H_X1_B29:P16 CXA061_SKL_48H_X1_B29:P17 \ 计数 978.000000 978.000000
平均值 0.041587 -0.001685
标准 1.713974 3.091669
最小 -12.695900 -34.948900
25% -0.569150 -0.642050
50% 0.000000 0.050800
75% 0.637700 0.818025
最大 22.556600 25.772400

cid CXA061_SKL_48H_X1_B29:P18 CXA061_SKL_48H_X1_B29:P19 \ 计数 978.000000 978.000000
均值 -0.019696 0.061637
标准 2.570132 2.648487
最小 -33.142900 -29.076300
25% -0.798700 -0.632600
50% -0.057600 0.048900
75% 0.588375 0.679500
最大 30.018900 30.709400

cid CXA061_SKL_48H_X1_B29:P20 CXA061_SKL_48H_X1_B29:P21 \ 计数 978.000000 978.000000
平均 0.026416 -0.004739
标准 2.616890 2.135260
最小 -31.187200 -15.955000
25% -0.608050 -0.732750
50% 0.008050 -0.116500
75% 0.638025 0.647625
最大 23.348100 24.229200

cid CXA061_SKL_48H_X1_B29:P22 CXA061_SKL_48H_X1_B29:P23 \ 计数 978.000000 978.000000
平均 0.019632 0.002053
标准 2.581926 2.356626
最小 -23.168000 -27.271400
25% -0.674500 -0.683150
50% -0.026800 -0.001000
75% 0.711800 0.721400
最大 38.533300 27.568000

cid CXA061_SKL_48H_X1_B29:P24
计数 978.000000
均值 -0.043314
标准 1.704406
最小 -9.464100
25% -0.780525
50% -0.144250
75% 0.515325
最大 19.056400

[8 行 x 372 列]

进程以退出代码 0 结束

【问题讨论】:

  • 尝试将值转换为浮点数!老实说,虽然需要更多关于如何计算这些中位数的背景信息。如果 data_df 是 pandas 数据框,请告诉我们
  • @GauravDhama 是的,data_df 是熊猫数据框。顺便说一句,这行得通吗:gene_medians = GCT_object.data_df.median(axis=1) unrounded_gm = format(gene_medians, ".7f")
  • 您能否发布详细代码,因为这不是 pandas 数据框的常见行为。我认为您在问题中提到的特定代码行不是问题。
  • 我添加的代码是我在上面评论的编辑。在我没有使用“.7f”格式之前
  • 是 parse_gctoo 一个标准模块在谷歌的任何地方都找不到。

标签: python rounding median


【解决方案1】:

如果您使用的是熊猫数据帧(data_df),那么您可以使用中位函数形成numpy包。

gene_medians = numpy.median(GCT_object.data_df[[1]])

gene_medians = GCT_object.data_df[[1]].apply(numpy.median)

【讨论】:

  • 您可以只可以编写 - 导入numpy span>
猜你喜欢
  • 1970-01-01
  • 2012-01-17
  • 2010-10-16
  • 2022-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-06
相关资源
最近更新 更多