日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

full join 和full outer join_多表关联:公式展开、join、过滤条件的顺序

發布時間:2024/9/27 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 full join 和full outer join_多表关联:公式展开、join、过滤条件的顺序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這是在實現多表關聯時想到的。

我們現在這套體系,實現多表關聯比較復雜。如果Superset能官方支持多表關聯,不知道會是什么樣的方案,復雜度如何。


  • 在公式這個層面,沒有關聯條件,只有兩個列、或者多個列,相互之間該如何計算(+-*/)。

->由此可知,在展開公式之前,結果集要先進行join,以保證列計算時,每一行被正確的對齊了。

->查找基礎KPI、分組、查詢的操作不需要改變。在獲取df之后,merge各個df,要提前到展開公式之前。

  • 如果沒有定義join條件呢?

join是在結果集層面定義的,兩個結果集如何關聯起來。

如果查詢的結果集是單結果集,完全不影響在公式里引用來自其他結果集的KPI,這個時候是沒有join條件的。

--在程序中,要把這種情況當成錯誤來處理,即,KPI公式中出現的其他KPI,不能來自join定義之外。

->在逐層嵌套的KPI定義體系中,可能存在需要到本層join定義之外,再去下層獲取join條件的情況(假設KPI有4層,第1層的join條件,很可能無法把第4層的數據集關聯起來)。所以,join條件也需要迭代處理。每一層都需要join操作。

  • 當前的策略是獨立查詢各個table的數據,關聯條件作用在pandas.DataFrame之間,每個DataFrame中可能包含不需要的數據,即,不滿足join條件的數據也可能會被加載到DataFrame中。再考慮到每個查詢中limit的存在,會有部分滿足條件的數據不會出現在join之后的結果集中。

--這個問題沒找到完善的解決方案

  • pandas的merge行成一個獨立的DataFrame,存在列名重復的可能。

--參見這個討論:https://stackoverflow.com/questions/19125091/pandas-merge-how-to-avoid-duplicating-columns

--來自兩個DataFrame的列如果重名,可以用suffixes函數控制列名加什么后綴。

--https://blog.csdn.net/brucewong0516/article/details/82707492

--所以,這個問題至少是可以解決的。

  • 過濾條件(如果有的話),應該和join一起處理。

細節待定

展開公式的邏輯

->從KPI到換算成列

2019-08-06補充:

  • Context

寫二叉樹代碼的時候,就在想,拼接公式時要不要加一個上下文。

今早模糊想到,的確需要一個上下文(Context)。拼接公式是從葉子節點開始,如果葉子節點是KPI,要查到對應的KPI屬于哪個數據集,一旦涉及兩個或多個KPI之間的運算,就有可能需要join才能計算,否則,不對齊的行之間運算沒有意義。

join之后呢,就需要有個地方保存這個join出來的數據集,而且,還要供公式樹上的上一級節點使用。

假設有Dataset_1/Dataset_2/Dataset_3三個數據集。

Dataset_1 : 『KPI_1/KPI_2/KPI_3』

Dataset_2 : 『KPI_4/KPI_5』

Dataset_3 : 『KPI_6/KPI_7』

KPI_2 = KPI_5 + KPI_7

KPI_3 = KPI_6 + KPI_7

對KPI_3來說,KPI_6/KPI_7屬于同一個數據集,不需要先join再計算。

對KPI_2來說,KPI_5/KPI_7不屬于同一個數據集,需要先join Dataset_2、Dataset_2再計算,否則兩個數據集的行沒對齊,計算得到的結果沒有實際意義。

公式展開的過程,就是計算得到pandas.core.series.Series的過程;同一個數據集的各個KPI即是多個pandas.core.series.Series,數據集是pandas.core.series.Series的集合,也就是一個pandas.DataFrame。

對完全由公式KPI構成的數據集,遍歷KPI,展開公式,就是計算Series,保存到DataFrame。即,在查詢數據時,一個數據集,和一個DataFrame對應。

把Series加到DataFrame,可以參考:https://stackoverflow.com/questions/12555323/adding-new-column-to-existing-dataframe-in-python-pandas

見joaquin的回答,2017年更新的方法,是調用assign,把Series加入到DataFrame。

2019-08-08補充:如果需要動態命名新增列,可以參考 https://stackoverflow.com/questions/39767718/pandas-assign-with-new-column-name-as-string

--從2019年3月開始重新做Superset二次開發,快五個月了,像是把2017年想要實現但沒條件實現的功能,都實現了。是不是又要告一段落了呢?

總結

以上是生活随笔為你收集整理的full join 和full outer join_多表关联:公式展开、join、过滤条件的顺序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 中文字幕在线观看视频一区二区 | 一级免费看片 | 一本色综合 | 欧美在线免费视频 | 国产又粗又猛又爽又黄的视频在线观看动漫 | 国产999精品 | 色偷偷91 | 成人一级生活片 | 人操人 | 岛国一区二区三区 | 欧美色图一区 | 涩涩网站在线 | 人人妻人人爽欧美成人一区 | 这里只有精品66 | 激情综合网婷婷 | 少妇名器的沉沦 | 黄色免费网站 | 美女福利在线视频 | 狠狠干狠狠干狠狠干 | 免费国产精品视频 | 精品国产九九九 | 黄色一级大片免费看 | 日本精品一区二区三区视频 | 国产视频三级 | 一二三区免费视频 | 曰韩在线| 精品无码一区二区三区爱欲 | 国产精品视频免费在线观看 | 一区二区三区视频在线 | 亚洲三级在线播放 | 欧美日韩中文在线观看 | 欧美精品一区二区三区四区 | 亚洲av中文无码乱人伦在线观看 | 中文人妻熟妇乱又伦精品 | 亚洲色欲色欲www在线观看 | 夜夜综合| 日本黄色大片免费 | 香蕉视频性 | 日韩三级黄色 | 国产在线视频一区二区 | 美女试爆场恐怖电影在线观看 | 亚洲av片一区二区三区 | 免费的黄色的视频 | 女人扒开腿免费视频app | 精品产国自在拍 | 欧美高清hd19 | 中文字幕亚洲日本 | 国产精品综合久久久 | 亚洲狠| 日韩一级在线视频 | 国产精品一区二区在线播放 | 久久亚洲中文字幕无码 | 国产无码精品合集 | 日本黄色不卡视频 | 先锋资源一区 | 久久五月激情 | 国产视频第一区 | 最新av免费在线观看 | 亚洲午夜在线视频 | 亚洲国产免费看 | 国产精品成人久久电影 | 成人亚洲在线 | 日本免费一区二区三区 | 亚洲国产婷婷 | 欧美在线黄 | 我爱52av| 精品久久久在线观看 | 亚洲第一色播 | 色婷婷777 | 欧美少妇bbw | 黄色仓库av | 色久综合网 | 日韩和欧美一区二区 | 亚洲色精品三区二区一区 | 免费一级片网址 | 丰满人妻熟妇乱偷人无码 | 精品aaa | 亚洲综合精品一区 | www.白浆 | 综合久久2o19 | 人人看av| 好吊视频一区二区三区 | 不卡在线播放 | 国产精品jizz在线观看老狼 | 日韩五月天 | 国产又猛又黄又爽 | 黄色一级免费观看 | 伊人三级| 不卡在线播放 | 中国丰满老妇xxxxx交性 | 国产精品无码久久久久久电影 | 国产又黄又爽 | 亚洲一区二区观看播放 | 色眯眯网| 免费一级特黄3大片视频 | 亚洲精品888 | 视频区小说区 | 国产亚洲精久久久久久无码77777 | 蜜桃av噜噜一区二区三区网址 |