gpt4 book ai didi

python - Pandas dataframe.dot 划分方法

转载 作者:太空狗 更新时间:2023-10-30 03:00:45 25 4
gpt4 key购买 nike

我正在尝试划分两个不同长度的系列以返回它们的矩阵乘积数据框。

我可以使用点法 ( from this answer ) 将它们相乘:

# Create series
average_read_intervals = pd.Series([10,20,30,40],
index=['a','b','c','d'])
region_lengths = pd.Series([100,200,300,400,500,1000],
index=['z','y','x','w','v','u'])

# Convert to dataframes
R = pd.DataFrame(region_lengths)
A = pd.DataFrame(average_read_intervals)

# Dot multiplication
R.dot(A.T)
a b c d
z 1000 2000 3000 4000
y 2000 4000 6000 8000
x 3000 6000 9000 12000
w 4000 8000 12000 16000
v 5000 10000 15000 20000
u 10000 20000 30000 40000

我试过 div 方法,但这只会用 NaN 填充数据框:

In [17]: R.div(A.T)
Out[17]:
0 a b c d
0 NaN NaN NaN NaN NaN
u NaN NaN NaN NaN NaN
v NaN NaN NaN NaN NaN
w NaN NaN NaN NaN NaN
x NaN NaN NaN NaN NaN
y NaN NaN NaN NaN NaN
z NaN NaN NaN NaN NaN

同样,标准除法运算符也返回相同的结果:

In [18]: R / A.T
Out[1]:
0 a b c d
0 NaN NaN NaN NaN NaN
u NaN NaN NaN NaN NaN
v NaN NaN NaN NaN NaN
w NaN NaN NaN NaN NaN
x NaN NaN NaN NaN NaN
y NaN NaN NaN NaN NaN
z NaN NaN NaN NaN NaN

所以我对我的问题的正确解决方案感到有点困惑。

非常感谢任何帮助。

最佳答案

要进行元素明智的除法操作,您可以像这样划分每个数据框的值:

matrix_div = pd.DataFrame(R.values/A.T.values, index=R.index, columns=A.index)

产生所需的矩阵

     a   b          c     d
z 10 5 3.333333 2.5
y 20 10 6.666667 5.0
x 30 15 10.000000 7.5
w 40 20 13.333333 10.0
v 50 25 16.666667 12.5
u 100 50 33.333333 25.0

关于python - Pandas dataframe.dot 划分方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28213520/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com