文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

使用pandas怎么调整列的顺序

2023-06-14 08:25

关注

这篇文章给大家介绍使用pandas怎么调整列的顺序,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

调整列的顺序

>>> df = pd.read_excel(r'D:/myExcel/1.xlsx')>>> df  A B C D0  bob 12 78 871 millor 15 92 21>>> df.columnsIndex(['A', 'B', 'C', 'D'], dtype='object')# 这是最简单常用的一种方法,相当于指定列名让pandas# 从df中获取>>> df[['A', 'D', 'C', 'B']]  A D C B0  bob 87 78 121 millor 21 92 15# 这也是可以的>>> df[['A', 'A', 'A', 'A']]  A  A  A  A0  bob  bob  bob  bob1 millor millor millor millor

2、添加某一列或者某几列

(1)直接添加

>>> df['E']=[1, 2]>>> df  A B C D E0  bob 12 78 87 11 millor 15 92 21 2

(2)调用assign方法。该方法善于根据已有的列添加新的列,通过基本运算,或者调用函数

>>> df  A B C D0  bob 12 78 871 millor 15 92 21# 其中E是列名,根据B列-C列的值得到>>> df.assign(E=df['B'] - df['C'])  A B C D E0  bob 12 78 87 -661 millor 15 92 21 -77# 添加两列也可以>>> df.assign(E=df['B'] - df['C'], F=df['B'] * df['C'])  A B C D E  F0  bob 12 78 87 -66 9361 millor 15 92 21 -77 1380

哈哈,以上就是pandas关于调整列的顺序以及新增列的用法

补充:pandas修改DataFrame中的列名&调整列的顺序

修改列名:

直接调用接口:

df.rename()

看一下接口中的定义:

 def rename(self, *args, **kwargs):  """  Alter axes labels.  Function / dict values must be unique (1-to-1). Labels not contained in  a dict / Series will be left as-is. Extra labels listed don't throw an  error.  See the :ref:`user guide <basics.rename>` for more.  Parameters  ----------  mapper, index, columns : dict-like or function, optional   dict-like or functions transformations to apply to   that axis' values. Use either ``mapper`` and ``axis`` to   specify the axis to target with ``mapper``, or ``index`` and   ``columns``.  axis : int or str, optional   Axis to target with ``mapper``. Can be either the axis name   ('index', 'columns') or number (0, 1). The default is 'index'.  copy : boolean, default True   Also copy underlying data  inplace : boolean, default False   Whether to return a new DataFrame. If True then value of copy is   ignored.  level : int or level name, default None   In case of a MultiIndex, only rename labels in the specified   level.  Returns  -------  renamed : DataFrame  See Also  --------  pandas.DataFrame.rename_axis  Examples  --------  ``DataFrame.rename`` supports two calling conventions  * ``(index=index_mapper, columns=columns_mapper, ...)``  * ``(mapper, axis={'index', 'columns'}, ...)``  We *highly* recommend using keyword arguments to clarify your  intent.  >>> df = pd.DataFrame({"A": [1, 2, 3], "B": [4, 5, 6]})  >>> df.rename(index=str, columns={"A": "a", "B": "c"})   a c  0 1 4  1 2 5  2 3 6   >>> df.rename(index=str, columns={"A": "a", "C": "c"})   a B  0 1 4  1 2 5  2 3 6   Using axis-style parameters   >>> df.rename(str.lower, axis='columns')   a b  0 1 4  1 2 5  2 3 6   >>> df.rename({1: 2, 2: 4}, axis='index')   A B  0 1 4  2 2 5  4 3 6  """  axes = validate_axis_style_args(self, args, kwargs, 'mapper', 'rename')  kwargs.update(axes)  # Pop these, since the values are in `kwargs` under different names  kwargs.pop('axis', None)  kwargs.pop('mapper', None)  return super(DataFrame, self).rename(**kwargs)

注意:

一个*,输入可以是数组、元组,会把输入的数组或元组拆分成一个个元素。

两个*,输入必须是字典格式

示例:

>>>import pandas as pd>>>a = pd.DataFrame({'A':[1,2,3], 'B':[4,5,6], 'C':[7,8,9]})>>> a  A B C0 1 4 71 2 5 82 3 6 9  #将列名A替换为列名a,B改为b,C改为c>>>a.rename(columns={'A':'a', 'B':'b', 'C':'c'}, inplace = True)>>>a a b c0 1 4 71 2 5 82 3 6 9

调整列的顺序:

如:

>>> import pandas>>> dict_a = {'user_id':['webbang','webbang','webbang'],'book_id':['3713327','4074636','26873486'],'rating':['4','4','4'],'mark_date':['2017-03-07','2017-03-07','2017-03-07']} >>> df = pandas.DataFrame(dict_a) # 从字典创建DataFrame>>> df # 创建好的df列名默认按首字母顺序排序,和字典中的先后顺序并不一样,字典中'user_id','book_id','rating','mark_date'  book_id mark_date rating user_id0 3713327 2017-03-07 4 webbang1 4074636 2017-03-07 4 webbang2 26873486 2017-03-07 4 webbang

直接修改列名:

>>> df = df[['user_id','book_id','rating','mark_date']] # 调整列顺序为'user_id','book_id','rating','mark_date'>>> df  user_id book_id rating mark_date0 webbang 3713327 4 2017-03-071 webbang 4074636 4 2017-03-072 webbang 26873486 4 2017-03-07

关于使用pandas怎么调整列的顺序就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯