亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Dask 將 2 個數據幀連接成 1 個數據幀

Dask 將 2 個數據幀連接成 1 個數據幀

慕尼黑的夜晚無繁華 2024-01-15 21:13:25
客觀的df_labelled將文件與部分標記點合并到df包含所有點的位置。我嘗試過的參考Simple way to Dask concatenate (horizontal, axis=1, columns),我嘗試了下面的代碼df = df.repartition(npartitions=200)df = df.reset_index(drop=True)df_labelled = df_labelled.repartition(npartitions=200)df_labelled = df_labelled.reset_index(drop=True)df = df.assign(label = df_labelled.label)df.head()但我得到了錯誤ValueError:并非所有分區都是已知的,無法對齊分區。請使用set_index設置索引。我嘗試過的另一件事是對表進行左連接,但所有標簽都為 NaN,你能解釋一下我做錯了什么嗎?result = dd.merge(df, df_labelled, on=['x', 'y', 'z','R', 'G', 'B'], how="left")result.head()    x               y               z           R   G   B   label0   39020.470000    33884.200003    36.445701   25  39  26  NaN1   39132.740002    33896.049994    30.405700   19  24  18  NaN2   39221.059994    33787.050001    26.605700   115 145 145 NaN無論如何我可以達到如下預期的結果嗎?我無法在 Pandas 中運行,因為有很多點會導致 Pandas 內存問題。數據df(該文件包含所有點)    x               y               z           R   G   B0   39047.700012    33861.890015    48.115704   7   18  12  1   39044.110016    33860.150024    47.135700   14  28  152   39049.280029    33861.950073    49.405701   30  58  333   39029.030000    33937.689993    48.425700   152 154 1434   39066.980000    33937.870001    49.725699   209 218 2255   39069.810002    33795.460001    42.405699   113 136 154df_labelled(該文件包含一部分標記點)    x               y               z           R   G   B   label0   39047.700012    33861.890015    48.115704   7   18  12  141   39044.110016    33860.150024    47.135700   14  28  15  142   39049.280029    33861.950073    49.405701   30  58  33  14預期結果    x               y               z           R   G   B   label0   39047.700012    33861.890015    48.115704   7   18  12  141   39044.110016    33860.150024    47.135700   14  28  15  142   39049.280029    33861.950073    49.405701   30  58  33  143   39029.030000    33937.689993    48.425700   152 154 143 nan4   39066.980000    33937.870001    49.725699   209 218 225 nan5   39069.810002    33795.460001    42.405699   113 136 154 nan
查看完整描述

1 回答

?
翻過高山走不出你

TA貢獻1875條經驗 獲得超3個贊

我認為當你做這樣的事情時會出現錯誤:

df = df.assign(label = df_labelled.label)

因為數據幀 df 或/和 df_labelled 中沒有索引。而且 Dask 不像 Pandas 那樣支持多個索引。如果您有多個鍵來合并 Dask 中的數據幀,請定義左鍵和右鍵,而不是使用索引。這對我有用:

result = dd.merge(df, df_labelled, left_on=['x', 'y', 'z','R', 'G', 'B'], right_on = ['x', 'y', 'z','R', 'G', 'B'],  suffixes=['_1', '_2'], how="left")



查看完整回答
反對 回復 2024-01-15
  • 1 回答
  • 0 關注
  • 153 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號