差异

2017-10-04 63 views
1

我有以下DF:差异

  I_q_0_sub I_q_1_sub I_q_2_sub I_q_3_sub I_q_4_sub I_q_5_sub 
q 
0.016513 1.0  1.086586 0.396789 0.030419 0.167913 0.626752 
0.017082 1.0  1.088389 0.397858 0.029408 0.166246 0.629824 
0.017651 1.0  1.088213 0.398661 0.028985 0.167011 0.628466 
0.018221 1.0  1.085454 0.396699 0.027980 0.165895 0.627416 
0.018790 1.0  1.078595 0.395192 0.026815 0.165361 0.625276 
0.019360 1.0  1.076327 0.393727 0.026964 0.166564 0.624980 
0.019929 1.0  1.076141 0.392881 0.026499 0.166089 0.624884 
0.020498 1.0  1.074617 0.391246 0.026023 0.164293 0.625018 
0.021068 1.0  1.074573 0.389804 0.025534 0.165650 0.623080 
0.021637 1.0  1.074772 0.390498 0.025619 0.166404 0.622398 
0.022207 1.0  1.072407 0.389034 0.025418 0.165267 0.620503 
0.022776 1.0  1.068778 0.389453 0.025364 0.165631 0.621173 
0.023345 1.0  1.069125 0.388866 0.025222 0.165374 0.622733 
0.023915 1.0  1.067703 0.389035 0.024862 0.164636 0.621182 
0.024484 1.0  1.063856 0.387513 0.025124 0.164992 0.619048 
0.025054 1.0  1.063000 0.388187 0.025446 0.164981 0.617603 
0.025623 1.0  1.063995 0.387414 0.025752 0.165825 0.617720 
0.026192 1.0  1.061866 0.387479 0.025579 0.165128 0.618729 
0.026762 1.0  1.060178 0.384343 0.025603 0.165227 0.616478 
0.027331 1.0  1.057169 0.384075 0.025644 0.164989 0.617416 
0.027900 1.0  1.054479 0.384566 0.026249 0.164863 0.615285 
0.028470 1.0  1.054914 0.383443 0.026397 0.166146 0.616100 
0.029039 1.0  1.054963 0.383084 0.026302 0.165473 0.617631 
0.029609 1.0  1.052284 0.382753 0.026824 0.164973 0.614430 
0.030178 1.0  1.053644 0.383991 0.027040 0.166437 0.615252 
0.030747 1.0  1.051703 0.384502 0.027135 0.166372 0.614781 
0.031317 1.0  1.048446 0.383240 0.027762 0.165991 0.614492 
0.031886 1.0  1.050411 0.382216 0.027915 0.167335 0.613784 
0.032455 1.0  1.052862 0.383122 0.028400 0.167722 0.615104 
0.033025 1.0  1.048664 0.384156 0.029077 0.167987 0.614716 
0.033594 1.0  1.045783 0.384269 0.029518 0.166930 0.614234 
0.034163 1.0  1.049077 0.384258 0.030929 0.168138 0.614413 
0.034733 1.0  1.047248 0.384060 0.031300 0.168228 0.613657 
0.035302 1.0  1.044294 0.385330 0.031312 0.168637 0.612413 
0.035872 1.0  1.045500 0.384630 0.031975 0.169539 0.613903 
0.036441 1.0  1.047008 0.385461 0.032721 0.169195 0.614401 
0.037010 1.0  1.046601 0.386015 0.033526 0.171218 0.615378 
0.037580 1.0  1.039578 0.385855 0.034593 0.170812 0.611779 
0.038149 1.0  1.042296 0.386241 0.035050 0.170443 0.611111 
0.038718 1.0  1.041640 0.385285 0.035902 0.171739 0.611083 
0.039288 1.0  1.046594 0.388858 0.037150 0.174225 0.613183 
0.039857 1.0  1.045652 0.390708 0.038682 0.173627 0.613125 
0.040426 1.0  1.046337 0.392301 0.039181 0.174176 0.612989 
0.040996 1.0  1.041239 0.392167 0.039861 0.175146 0.612321 
0.041565 1.0  1.040595 0.393418 0.040991 0.174704 0.613320 

我得到不同的值,当我申请的nsmallest方法单独的列和整个DF。正如你所看到的,对于个人专栏中,我得到这个:

df["I_q_0_sub"].iloc[15:60].nsmallest(n = 5).mean() 
1.0 

df["I_q_1_sub"].iloc[15:60].nsmallest(n = 5).mean() 
1.041069402080646 

df["I_q_2_sub"].iloc[15:60].nsmallest(n = 5).mean() 
0.3828830431385227 

df["I_q_3_sub"].iloc[15:60].nsmallest(n = 5).mean() 
0.025197931800085817 

df["I_q_4_sub"].iloc[15:60].nsmallest(n = 5).mean() 
0.16474921466342365 

df["I_q_4_sub"].iloc[15:60].nsmallest(n = 5).mean() 
0.61174148613757 

整个DF:

df.iloc[15:60].nsmallest(n = 5, columns=formFactor_sub.columns).mean() 
I_q_0_sub 1.000000 
I_q_1_sub 1.041069 
I_q_2_sub 0.388593 
I_q_3_sub 0.037279 
I_q_4_sub 0.172569 
I_q_5_sub 0.611923 

为单独列那么值是从整个数据框的值不同的,不能。任何暗示为什么会发生这种情况将不胜感激。

回答

0

nsmallest只与列参数一起工作,即它必须找到特定列的最小行。如果您通过使用columns = formFactor_sub.columns完成所有列,它所做的只是返回第一列的最小值。

考虑这个数据帧,

a b c 
0 1 7 1 
1 10 9 2 
2 8 3 3 
3 11 6 4 
4 -1 1 5 
5 5 8 6 
6 15 2 7 

df.nsmallest(3, columns = df.columns) 

回报

a b c 
4 -1 1 5 
0 1 7 1 
5 5 8 6 

是一样的,你将与

df.nsmallest(3, columns = 'a') 

得到什么,但它是你将与

得到什么不同
df['b'].nsmallest(3) 

df['c'].nsmallest(3) 
+0

感谢回答。这说得通!是否有更多的“pythonic”方式来获得与单列相同的结果? –

+0

它在第一列对数据框进行排序,并为其余列返回相应的值。所以我想最Python的方法是去系列的方式,这是你在做什么 – Vaishali

+0

再次感谢!我的方式按预期工作,但它是非常重复的 –