繁体   English   中英

将列中的每个值乘以行python

[英]Multiply each value in a column by a row python

我这里有一小部分数据:

import pandas as pd

days = [1, 2, 3]

time = [2, 4, 2, 4, 2, 4, 2, 4, 2]

df1 = pd.DataFrame(days)

df2 = pd.Series(time)

df2 = df2.transpose()

df3 = df1*df2

df1 是一列数据,df2 是一行数据。 我需要一个 3x9 的数据框,其中行乘以列中的每个值以形成一个大数据框。 最终结果应如下所示:

df3 = [2  4  2  4  2  4  2  4  2
       4  8  4  8  4  8  4  8  4
       6  12 6  12 6  12 6  12 6 ]

他们的方式是我目前将它用于我的更大数据集,只有少数数据点被正确相乘,并且大多数是 nans。

点(产品)是解决此问题的方法之一

import pandas as pd
days = [1, 2, 3]
time = [2, 4, 2, 4, 2, 4, 2, 4, 2]
df1 = pd.DataFrame(days)
df2 = pd.DataFrame(time)
# use dot 
df3 = df1.dot(df2.T)
df3

输出

0   1   2   3   4   5   6   7   8
0   2   4   2   4   2   4   2   4   2
1   4   8   4   8   4   8   4   8   4
2   6   12  6   12  6   12  6   12  6

尝试这个:

df1.dot(df2.to_frame().T)

输出:

   0   1  2   3  4   5  6   7  8
0  2   4  2   4  2   4  2   4  2
1  4   8  4   8  4   8  4   8  4
2  6  12  6  12  6  12  6  12  6

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM