美文网首页Python我爱编程
8、pandas 的 行、列重排序 reindex()

8、pandas 的 行、列重排序 reindex()

作者: 让数据告诉你 | 来源:发表于2017-12-12 10:09 被阅读840次

    行、列重排序经常需要使用到。

    现在有一个DataFrame:

    数据源

    现在DataFrame的索引是默认索引,从0开头的。之前的文章里,我讲过用set_index()将某一列设为索引。我就把‘序号’这一列设置为索引。

    设置序列为索引

    set_index()是重新设置一个索引。

    而reindex()是将现有的行或者列调整顺序,这是两者的区别。

    行重新排序 列重新排序

    如果在新的索引名或者列名中,出现新的值,会发生添加新的行或者列,里面全是空值,而没有选中的行或者列就不会出现。

    行列出现新值

    所以如果在添加新行或列时,设置fill_value就可以将空值填充。

    用fill_value填充空值

    这里的reindex()可以给DataFrame添加新的行和列,之前讲过的loc[]也可以添加。但是reindex()需要将所有的行索引或者列名全部表示出来,所以便利性不如loc[]。但是如果添加行列较多,而且需要根据上下文填充空值的时候,reindex()就方便一些了。

    数据源 空值索引 使用bfill函数填充 使用ffill函数

    method='bfill'可以根据后面一个值进行填充,而method=’ffill'则是根据前面一个值进行填充。

    bfill可以理解为‘back fill',  'ffill'可以理解为’front fill'。

    但是这个参数使用有个条件:索引应该是升序或者降序的,如果索引顺序是乱的就会报错。

    相关文章

      网友评论

        本文标题:8、pandas 的 行、列重排序 reindex()

        本文链接:https://www.haomeiwen.com/subject/njjgixtx.html