python–Pandas中的Dataframe合并

python–Pandas中的Dataframe合并,第1张

概述出于某种原因,我无法使此合并正常工作.这个Dataframe(rspars)有2000行...... rsparid f1mult f2mult f3mult 0 1 0.318 0.636 0.810 1 2 0.348 0.703 0.893 2 3 0.384

出于某种原因,我无法使此合并正常工作.

这个Dataframe(rspars)有2000行……

    rsparID  f1mult  f2mult  f3mult 0        1   0.318   0.636   0.810 1        2   0.348   0.703   0.893 2        3   0.384   0.777   0.000 3        4   0.296   0.590   0.911 4        5   0.231   0.458   0.690 5        6   0.275   0.546   0.839 6        7   0.248   0.486   0.731 7        8   0.430   0.873   0.000 8        9   0.221   0.438   0.655 9       11   0.204   0.399   0.593

当试图将上面的表连接到基于rsparID列到此Dataframe的表时…

            line_track  line_race rsparID line_date                                2013-03-23         TP         10    1400 2013-02-23         GP          7     634 2013-01-01         GP          7    1508 2012-11-11        AQU          5      96 2012-10-11        BEL          2     161

用这个……

 df = pd.merge(datalines,rspars,how='left',on='rsparID')

我得到空白..

   line_track  line_race rsparID  f1mult  f2mult  f3mult 0         TP         10    1400     NaN     NaN     NaN 1         TP         10    1400     NaN     NaN     NaN 2         TP         10    1400     NaN     NaN     NaN 3         GP          7     634     NaN     NaN     NaN 4         GP         10     634     NaN     NaN     NaN

注意,“datalines”列可以比rspar多数千行,因此左连接.我一定做错了什么?

我也这样试过……

 df = datalines.merge(rspars,on='rsparID')

例2

我把数据放到了几行……

rspars:

    rsparID  f1mult  f2mult  f3mult 0     1400   0.216   0.435   0.656

datalines:

   rsparID 0    1400 1     634 2    1508 3      96 4     161 5    1011 6    1007 7     518 8    1955 9     678

合并…

 datalines.merge(rspars,on='rsparID')

输出…

   rsparID  f1mult  f2mult  f3mult 0    1400     NaN     NaN     NaN 1     634     NaN     NaN     NaN 2    1508     NaN     NaN     NaN 3      96     NaN     NaN     NaN 4     161     NaN     NaN     NaN 5    1011     NaN     NaN     NaN 6    1007     NaN     NaN     NaN 7     518     NaN     NaN     NaN 8    1955     NaN     NaN     NaN 9     678     NaN     NaN     NaN
最佳答案NaNs意味着它们在rsparID中没有共同的值.当合并他们重新编写时看起来相同的东西时,这可能会很棘手

具有字符串(整数)或整数的小型DataFrame的repr看起来相同,并且当帧很小时不打印dtype信息.您可以通过调用DataFrame.info()方法获取小帧的这些信息(以及更多信息),如下所示:df.info().这将为您提供有关DataFrame中的内容以及其列的dtypes的精彩摘要:

In [205]: datalines_int = DataFrame({'rsparID':[1400,634,1508,96,161,1011,1007,518,1955,678]})In [206]: datalines_str = DataFrame({'rsparID':map(str,[1400,678])})In [207]: datalines_intOut[207]:   rsparID0     14001      6342     15083       964      1615     10116     10077      5188     19559      678In [208]: datalines_strOut[208]:  rsparID0    14001     6342    15083      964     1615    10116    10077     5188    19559     678In [209]: datalines_int.info()

注意:您会注意到这里的reprs略有不同,很可能是因为数字DataFrame的填充.重点是,除非他们专门寻找差异,否则没有人真正能够以交互方式看到它. 总结

以上是内存溢出为你收集整理的python – Pandas中的Dataframe合并全部内容,希望文章能够帮你解决python – Pandas中的Dataframe合并所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1205318.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)