.div在Pandas(Python)中做了什么

时间:2017-07-05 23:32:10

标签: python pandas

我对突出显示的行感到困惑。这条线究竟是做什么的。 .div做什么?我试着查看说的文件

“浮动数据帧划分和其他元素(二元运算符truediv)”

我不确定这意味着什么。任何帮助将不胜感激!

enter image description here

3 个答案:

答案 0 :(得分:9)

您可以将一个数据帧除以另一个数据帧,并且pandas将自动对齐索引和列,然后分割适当的值。 EG df1 / df2

如果按系列划分数据框,pandas会自动将系列索引与数据框的列对齐。也许您希望将系列的索引与数据帧的索引对齐。如果是这种情况,那么您将不得不使用div方法。

所以而不是:

df / s

您使用

df.div(s, axis=0)

其中将s的索引与df的索引对齐,然后在通过其他维度进行广播时执行除法,在本例中为列。

答案 1 :(得分:1)

在上面的示例中,它实际上是在通过生成(pclass_xt.sum(0))的数组/系列在轴0上潜水pclass_xt。在(pclass_xt.sum(0))中,.sum沿轴= 1求和,这将为您提供所有pclass中存活和未存活的总数。然后,.div只是沿0轴潜水整个数据帧,并生成总和,即将一行除以该行的总和。

希望有帮助!

答案 2 :(得分:0)

    import pandas as pd,numpy as np
    
    data={"A":np.arange(10),"B":np.random.randint(1,10,10),"C":np.random.random(10)}
    #print(data)
    df2=pd.DataFrame(data=data)
    print("DataFrame values:\n",df2)
    s1=pd.Series(np.arange(1,11))
    print("s1 series values:\n",s1)
    
    print("Result of Division:\n",df2.div(s1,axis=0))
    
    **#So here, How the div is working as mention below:-
    #df Row1/s1 Row1 -0/1 4/1 0.305/1
    #df Row2/s1 Row2 -1/2 9/2  0.821/2**
    
#################Output###########################
DataFrame values:
    A  B         C
0  0  2  0.265396
1  1  2  0.055646
2  2  7  0.963006
3  3  9  0.958677
4  4  6  0.256558
5  5  6  0.859066
6  6  8  0.818831
7  7  4  0.656055
8  8  6  0.885797
9  9  4  0.412497
s1 series values:
 0     1
1     2
2     3
3     4
4     5
5     6
6     7
7     8
8     9
9    10
dtype: int64
Result of Division:
           A         B         C
0  0.000000  2.000000  0.265396
1  0.500000  1.000000  0.027823
2  0.666667  2.333333  0.321002
3  0.750000  2.250000  0.239669
4  0.800000  1.200000  0.051312
5  0.833333  1.000000  0.143178
6  0.857143  1.142857  0.116976
7  0.875000  0.500000  0.082007
8  0.888889  0.666667  0.098422
9  0.900000  0.400000  0.041250