簡體   English   中英

Python - 根據其他列中的值和位於同一列第一行的值乘以列

[英]Python - multiply columns based on values in other column, and values located in the first row of the same columns

我有一個 dataframe 有數百行。 我想從T1列開始填充NaN ,方法是將weight列中同一行中的值乘以同一T列中第一行中的值(抱歉,如果我的措辭難以理解)。 下面是原始 dataframe 的示例:

    ID  weight  T1          T2          T3          T4
0   A   1.00    1000        2000        3000        4000
1   B   0.04    NaN         NaN         NaN         NaN 
2   C   0.01    NaN         NaN         NaN         NaN 
3   D   0.06    NaN         NaN         NaN         NaN 

我想要的乘法示例:

    ID  weight  T1          T2          
0   A   1.00    1000        2000        
1   B   0.03    0.03*1000   0.03*2000       
2   C   0.02    0.02*1000   0.02*2000           
3   D   0.07    0.07*1000   0.07*2000           

如何才能做到這一點?

weightT列的第一行中提取值,然后進行外積:

tcols = df.filter(like='T').columns
df[tcols] = np.outer(df.weight, df[tcols].loc[0])

df
  ID  weight      T1      T2      T3      T4
0  A    1.00  1000.0  2000.0  3000.0  4000.0
1  B    0.04    40.0    80.0   120.0   160.0
2  C    0.01    10.0    20.0    30.0    40.0
3  D    0.06    60.0   120.0   180.0   240.0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM