【发布时间】:2019-12-07 00:03:23
【问题描述】:
我有两个不同时间段的数据帧 - df_period_a with
Vendor Market
VendorA MarketA
VendorA MarketB
VendorX MarketB
VendorZ MarketB
VendorC MarketX
VendorB MarketX
VendorB MarketA
VendorD MarketA
和df_period_b 一样-
Vendor Market
VendorA MarketB
VendorX MarketB
VendorZ MarketB
VendorC MarketB
VendorB MarketX
VendorD MarketX
VendorE MarketB
VendorF MarketC
这意味着MarketA 已经关闭,并且出现了一个新市场MarketC,以及一些新的供应商E 和F。我想用df_diff 来展示这一点以及供应商在市场之间的变动(如果有的话) -
Source Destination Value
MarketX1 MarketX2 1
MarketA1 MarketX2 1
MarketB1 MarketX2 0
MarketX1 MarketB2 1
MarketB1 MarketB2 3
- MarketC2 1
- MarketB2 1
这里的Value 等于在a 期间从source 市场转移到b 期间destination 市场的供应商数量。
我尝试过的东西不太准确 -
def get_vendor_displacement_count(market_list, df_before, df_after):
for market in market_list:
df_moved_vendors = pd.merge(df_before, df_after, on=['Vendor'], how='inner')
df_moved_vendors.rename(columns={'Market_x':'Source', 'Market_y':'Target'}, inplace=True)
df_moved_vendors['Source'] = dict_periods[len(market_list)+1] + " " + df_moved_vendors['Source'].astype(str)
df_moved_vendors['Target'] = dict_periods[len(market_list)] + " " + df_moved_vendors['Target'].astype(str)
return df_moved_vendors
另外,桑基图(ipysankeywidget) 是显示这种位移的最合适的图,还是我也可以看看其他的可视化?谢谢!
【问题讨论】:
-
“值”列中的那些值表示什么?我猜来源和目的地分别是 period_a 和 period_b 的供应商?什么是“MarketX1”而不是“MarketX2”?
-
尝试为此编写一些代码,即使它看起来很糟糕或很慢等等。发布该代码,以便我们为您提供帮助。 “我还可以看看其他可视化”的问题在本网站上是题外话,因为它是基于意见的、民意调查和征求建议的。
-
谢谢@JohnZwinck 和 jeremy_rutman .. 我已经做了一些相应的修改
标签: python pandas dataframe data-visualization