簡體   English   中英

合並返回 Pandas 中的 nan

[英]Merge returns nan in Pandas

我想在公共列ID上合並df1df2 df2看起來像這樣:

    ID      TYPE   VALUE1 VALUE2    VALUE3
0   672117  Single 0.25   923.77    94.08
1   MSN242  DOUBLE 0.21   1219.31   105.77
2   673312  DOUBLE 0.20   4030.08   113.00
3   222255  Single 0.23   1119.38   126.69

使用的代碼:

df3 = pd.merge(df1, df2, on ='ID', how = 'left')

好像有2510個通用ID(所有ID都匹配):

len(list(set(df1.ID) and set(df2.ID)))
>>> 2510

df3顯示所有列TYPEVALUE1VALUE2VALUE3大多是nan 什么地方出了錯?


編輯: df1 (形狀2510 rows × 22 columns )看起來像這樣:

    ID      CRITERION1  DATE                MEAS1       MEAS2       MEAS3    COMPOSITION    DPMT %CONTENT1  %CONTENT2 MeanGroup %Article1   %CA_Count   %CA_Count1  CATEGORY1 CATEGORY2 CODE    Group   COST1 COST2 COST3 COST4
0   000002  Y           2009-01-03 11:52:46 0.930150    17.412708   1.583333    Component   P   0.407859    0.979346    C   0.401572    0.000098    0.946168    Z   L   LEVEL1 NY   1767.0  1767.0  1767.0  1767.0
1   XC-004  Y           2009-01-03 11:52:46 1.898295    0.548192    0.250000    Component   NP  0.874263    0.999742    C   0.797250    0.000015    0.995345    Z   M   LEVEL1 NU   15525.0 15525.0 15525.0 15525.0

由於您向左合並(加入),它將保留左表(df1)中的所有 ID,並從 df2 中刪除所有不匹配的 ID。 然后,它從只剩下 NaN 的 ID 中填充所有不存在的 VALUE1、VALUE2、VALUE3。

我假設您的 ID 不匹配非常大,並且您的表中有len(df1.ID) - 2510個 NaN 行。

暫無
暫無

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

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