[英]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
如何才能做到這一點?
從weight
和T
列的第一行中提取值,然后進行外積:
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.