【发布时间】:2018-06-04 20:25:50
【问题描述】:
我有一个如下的数据框:
<table border="1" class="dataframe"> <thead> <tr style="text-align: right;"> <th></th> <th>Title</th> <th>ASIN</th> <th>State</th> <th>SellerSKU</th> <th>Quantity</th> <th>FBAStock</th> <th>QuantityToShip</th> </tr> </thead> <tbody> <tr> <th>1</th> <td>Daedal crafters- Pack of Two Gajra (Orange and...</td> <td>B075T64ZWJ</td> <td>WEST BENGAL</td> <td>DC216</td> <td>1</td> <td>0</td> <td>1</td> </tr> <tr> <th>2</th> <td>Daedal Dream Catchers - Intricate Web Design(B...</td> <td>B06XBRRYVK</td> <td>KARNATAKA</td> <td>DDC63BB</td> <td>1</td> <td>24</td> <td>0</td> </tr> <tr> <th>3</th> <td>Daedal Dream Catchers- Blue and White Four Rin...</td> <td>B07428QBJ9</td> <td>MAHARASHTRA</td> <td>12-16RT-1H8B</td> <td>1</td> <td>4</td> <td>0</td> </tr> <tr> <th>4</th> <td>Daedal dream catchers- Crescent wine DDC21</td> <td>B01DI70P9W</td> <td>UTTAR PRADESH</td> <td>70-PK4Z-6VSP</td> <td>1</td> <td>10</td> <td>0</td> </tr> </tbody></table>
列是:
Title ASIN State SellerSKU Quantity FBAStock QuantityToShip
我有另一个数据框,其中包含上述数据框的行子集,但只有“数量”列在此数据框中发生了更改,并且具有列
ASIN State Quantity
如何将这个较小的数据帧与第一个数据帧相交或合并,以便较小数据帧的数量通过匹配 ASIN 和状态列覆盖原始数据帧数量?
如果可以通过合并来实现,该怎么做?我不熟悉 'inner' 、 'left' 等 SQL 合并词...
目的:
我正在像这样修改原始 DF:
new = originalDF.groupby(['State' ,'ASIN' , 'Quantity']).size().reset_index().rename(columns= {0 : 'Count'})
new.Quantity = new[['Quantity' , 'Count']].apply(lambda tup : tup[0]*tup[1] , axis = 1)
new.drop(['Count'] , axis =1 , inplace=True)
现在我想将 originalDF 的列放入与新 DF 的 ASIN 和 State 列匹配的新 DF(新 DF 的数量列是我在最终数据框中想要的)。
【问题讨论】:
标签: python pandas dataframe data-analysis