簡體   English   中英

乘以兩個熊貓數據框

[英]multiply two pandas dataframes

我有兩個熊貓數據框:

DF1

   id        type    NY    PA    MD
0  90  superurban   0.1   0.1  0.08
1  88       urban   0.1  0.08  0.08
2  75    suburban  0.06  0.04  0.04
3  60       rural  0.04  0.02  0.02

DF2

  name  item
0   NY  1000
1   PA   500
2   MD   250

如何根據狀態縮寫將df2中的“ item”值與df1浮點值相乘? 輸出應為:

   id  type         NY    PA   MD
0  90  superurban   100   50   20
1  88  urban        100   40   20
2  75  suburban      60   20   10
3  60  rural         40   10    5

我們可以這樣:

In [112]: d1[['NY','PA','MD']] *= d2.set_index('name')['item']

In [113]: d1
Out[113]:
   id        type     NY    PA    MD
0  90  superurban  100.0  50.0  20.0
1  88       urban  100.0  40.0  20.0
2  75    suburban   60.0  20.0  10.0
3  60       rural   40.0  10.0   5.0

@JohnGalt更好的變體

In [118]: d1[d2['name']] *= d2.set_index('name')['item']

In [119]: d1
Out[119]:
   id        type     NY    PA    MD
0  90  superurban  100.0  50.0  20.0
1  88       urban  100.0  40.0  20.0
2  75    suburban   60.0  20.0  10.0
3  60       rural   40.0  10.0   5.0

或者您可以使用mul ;

df1[['NY','PA','MD']]=(df1[['NY','PA','MD']].T.reset_index().drop('index',1)).mul(df2.item,axis='index').T

Out[888]: 
   id        type     NY    PA    MD
0  90  superurban  100.0  50.0  20.0
1  88       urban  100.0  40.0  20.0
2  75    suburban   60.0  20.0  10.0
3  60       rural   40.0  10.0   5.0

暫無
暫無

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

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