【问题标题】:Multiplying elements of one column with all elements from another data set将一列的元素与另一数据集中的所有元素相乘
【发布时间】:2022-01-18 13:31:13
【问题描述】:

我有一些像这样的数据框'A'(我认为这是熊猫系列):

1
2
3
4

另一个数据集'B'看起来像这样(我认为这是numpy.ndarray):

[5 4 3 2 1]

我正在尝试将“A”中的第一个元素与“B”中的所有元素相乘,将“A”中的第二个元素与“B”中的所有元素相乘.....所以最后我会有这样的东西:

5 4 3 2 1
10 8 6 4 2
15 12 9 6 3
20 16 12 8 4

如果可能的话,我想避免在此处使用任何循环。

任何建议或意见......谢谢。

【问题讨论】:

    标签: python pandas numpy


    【解决方案1】:

    使用numpy broadcasting:

    s = pd.Series(range(1,5))
    
    a = np.array([5, 4, 3, 2, 1])
    
    out = s.to_numpy()[:, None] * a
    print (out)
    [[ 5  4  3  2  1]
     [10  8  6  4  2]
     [15 12  9  6  3]
     [20 16 12  8  4]]
    

    如果需要DataFrame:

    df = pd.DataFrame(out)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-21
      相关资源
      最近更新 更多