【问题标题】:How to join two dataframe with same category?如何加入具有相同类别的两个数据框?
【发布时间】:2021-09-14 05:29:58
【问题描述】:

现在,我有两个数据框。我用过groupby。和 count() 函数来导出这个数据帧(df1)。当我使用 groupby 时。统计每个类别的总数。它过滤掉了计数为0的类别。如何使用Python获得结果?

但是,我希望有一个也需要类别的数据框。

原始数据框:

    Cat           UR3     VR1    VR    VR3
0   ATIDS         137.0   99.0   40.0  84.0
1   BasicCrane    2.0     8.0    3.0   1.0
2   Beam Sensor   27.0    12.0   13.0  14.0
3   CLPS          1.0     NaN    NaN   1.0

但是,我希望有一个也需要类别的数据框。 (必填类别:ATIDS、BasicCrane、LLP、光束传感器、CLPS、SPR)

预期的数据帧('LLP'和'SPR'的计数为0)

    Cat           UR3     VR1    VR    VR3
0   ATIDS         137.0   99.0   40.0  84.0
1   BasicCrane    2.0     8.0    3.0   1.0
2   LLP           NaN     NaN    NaN   NaN
3   Beam Sensor   27.0    12.0   13.0  14.0
4   CLPS          1.0     NaN    NaN   1.0
5   SPR           NaN     NaN    NaN   NaN

【问题讨论】:

    标签: python pandas dataframe join merge


    【解决方案1】:
    >>> categories
    ['ATIDS', 'BasicCrane', 'LLP', 'Beam Sensor', 'CLPS', 'SPR']
    
    >>> pd.merge(pd.DataFrame({'Cat': categories}), df, how='outer')
               Cat    UR3   VR1    VR   VR3
    0        ATIDS  137.0  99.0  40.0  84.0
    1   BasicCrane    2.0   8.0   3.0   1.0
    2          LLP    NaN   NaN   NaN   NaN
    3  Beam Sensor   27.0  12.0  13.0  14.0
    4         CLPS    1.0   NaN   NaN   1.0
    5          SPR    NaN   NaN   NaN   NaN
    

    【讨论】:

      【解决方案2】:

      您可以轻松做到的一种方法是在执行 groupby 函数之前用 0 填充 NaN 值。所有零数据(以前的 NaN 值)将全部计为零。

      df.fillna(0)
      

      【讨论】:

      • 我认为这不是 OP 想要的。
      • 哦,我可能误解了目标。
      猜你喜欢
      • 2014-02-21
      • 2018-09-03
      • 1970-01-01
      • 2017-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多