【问题标题】:When merging 2 variables, concat does not print them the way i want it合并 2 个变量时,concat 不会按照我想要的方式打印它们
【发布时间】:2019-02-15 12:42:13
【问题描述】:

目前方案如下:

a1

      Salary
Year        
2007    2750
2008    2850
2009    2700
2010    2900
2011    3000
2012    3050
2013    3050
2014    3200
2015    3300
2016    3300

b1

      GDP for Year
Year              
2007      271249.8
2008      271980.4
2009      279858.0
2010      322361.1
2011      346649.0
2012      361365.9
2013      378531.6
2014      390447.7
2015      408096.6
2016      410271.9

当我合并它时,它显示:

pd.concat([a1, b1], axis=1, ignore_index=False)

      Salary  GDP for Year
Year                      
2007  2750.0           NaN
2008  2850.0           NaN
2009  2700.0           NaN
2010  2900.0           NaN
2011  3000.0           NaN
2012  3050.0           NaN
2013  3050.0           NaN
2014  3200.0           NaN
2015  3300.0           NaN
2016  3300.0           NaN
2007     NaN      271249.8
2008     NaN      271980.4
2009     NaN      279858.0
2010     NaN      322361.1
2011     NaN      346649.0
2012     NaN      361365.9
2013     NaN      378531.6

我希望它被打印为:

        Salary   GDP For Year
Year    
2007    2750 .   271249.8
2008    2850 .   271980.4
2009    2700 .  279858.0
2010    2900 .  322361.1
2011    3000 .   346649.0
2012    3050 .   361365.9
2013    3050 .   378531.6
2014    3200 .   390447.7
2015    3300 .   408096.6
2016    3300 .   410271.9

然后,我想绘制一个图表并创建一个比较,以了解两条线在单个图表中如何相互比较。

我已经尝试过、合并、加入、连接,但到目前为止还没有。

【问题讨论】:

    标签: python pandas dataframe merge concat


    【解决方案1】:

    数据框的索引之一是字符串类型,而另一个是整数

    rename

    a1.rename(int, inplace=True)
    b1.rename(int, inplace=True)
    pd.concat([a1, b1], axis=1)
    
          Salary  GDP for Year
    Year                      
    2007    2750      271249.8
    2008    2850      271980.4
    2009    2700      279858.0
    2010    2900      322361.1
    2011    3000      346649.0
    2012    3050      361365.9
    2013    3050      378531.6
    2014    3200      390447.7
    2015    3300      408096.6
    2016    3300      410271.9
    

    分配给index

    a1.index = a1.index.astype(int)
    b1.index = b1.index.astype(int)
    pd.concat([a1, b1], axis=1)
    

    【讨论】:

      【解决方案2】:

      试试:

      pd.concat([a1, b1], axis='col', ignore_index=False)
      

      【讨论】:

      • 虽然这可能会回答作者的问题,但它缺少一些解释性文字和文档链接。如果没有围绕它的一些短语,原始代码 sn-ps 并不是很有帮助。您可能还会发现how to write a good answer 非常有帮助。请编辑您的答案。
      • 好的,谢谢建议,下次回复时会牢记。
      猜你喜欢
      • 2022-11-24
      • 1970-01-01
      • 1970-01-01
      • 2017-02-25
      • 1970-01-01
      • 2021-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多