簡體   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