精华内容
下载资源
问答
  • 日常在处理数据的时候,经常需要对dataframe进行重排,只取其中几列或者更改列名等操作;有两个相似的方法reindex和rename,与此记录一下常见的用法,并标注一下区别:rename:重命名,就是对col列进行命名的修改,...

    日常在处理数据的时候,经常需要对dataframe进行重排,只取其中几列或者更改列名等操作;

    有两个相似的方法reindex和rename,与此记录一下常见的用法,并标注一下区别:

    rename:重命名,就是对col列进行命名的修改,他只改变col的名字,相当于起了个别名,原来叫col1,以后叫col2,inplace=True,用来保存更改,即更改了原表格内容;

    reindex:重新索引,他可以修改行和列的索引关系,从而达到修改的目的

    代码:

    df.rename(index=str, columns={"A": "a", "B": "c"},inplace=True)

    将表格内的A、B两列的列名分别改为了a、c;

    df1.reindex(index=['a','b','c','d'],columns=['one','two','three','four'])

    将表格的列名由abcd改为one。two,three,four;

    展开全文
  • 本文参考自:pandas 修改 DataFrame 列名原博客针对每个DataFrame.columns中的元素做相同的修改操作而拙作是对每个元素做不同操作的生搬硬套, 请大家不吝赐教提出问题存在一个名为dataset的DataFrame>>> dataset....

    本文参考自:pandas 修改 DataFrame 列名

    原博客针对每个DataFrame.columns中的元素做相同的修改操作

    而拙作是对每个元素做不同操作的生搬硬套, 请大家不吝赐教

    提出问题

    存在一个名为dataset的DataFrame

    >>> dataset.columns

    Index(['age', 'job', 'marital', 'education', 'default', 'housing', 'loan',

    'contact', 'month', 'day_of_week', 'duration', 'campaign', 'pdays',

    'previous', 'poutcome', 'emp.var.rate', 'cons.price.idx',

    'cons.conf.idx', 'euribor3m', 'nr.employed', 'y'],

    dtype='object')

    现在, 我要将其columns名字改为:

    >>> new_columns

    Index(['age_0', 'job_1', 'marital_2', 'education_3', 'default_4', 'housing_5',

    'loan_6', 'contact_7', 'month_8', 'day_of_week_9', 'duration_10',

    'campaign_11', 'pdays_12', 'previous_13', 'poutcome_14',

    'emp.var.rate_15', 'cons.price.idx_16', 'cons.conf.idx_17',

    'euribor3m_18', 'nr.employed_19', 'y_20'],

    dtype='object')

    该如何操作?

    解决

    一.通过DataFrame.columns类的自身属性修改:

    1.无脑赋值直接修改

    >>> # 先解决`new_columns`的推导问题

    >>> # 列表推导

    >>> new_columns_list = [column_str+'_'+str(i) for i ,column_str in enumerate(dataset.columns)]

    >>> # 类型转换

    >>> new_columns = pd.core.indexes.base.Index(new_columns_list)

    >>> dataset.columns = new_columns

    2.通过.map(mapper, na_action=None)函数来修改

    >>> # 注:mapper 多运用 lambda 表达式

    >>> # 但我似乎没有找到在 lambda 表达式中改变两个值的方法

    >>> # 所以只能蹩脚地用一个全局变量i, 和映射函数mapper()

    >>> # 希望大家能帮我找到方法

    >>> i = 0

    >>> def mapper(x): # 映射函数即 mapper

    global i

    x += '_' + str(i)

    i += 1

    return x

    >>> dataset.columns.map(mapper)

    3.参考博客用到了DataFrame.columns.str对象

    用help(DataFrame.columns.str)翻遍了文档,

    也没能找到可以被我拿来套用的方法, 想着抽时间把这段文档翻译一下

    二.通过DataFrame.rename()函数来修改

    1.暴力字典法(好处:可以只修改特定的列)

    >>> # 此处先用字典推导法

    >>> new_dict = {

    key:key+'_'+str(i)

    for i, key in enumerate(dataset.columns)

    }

    >>> dataset.rename(columns=new_dict, inplace=True)

    2.映射修改法

    >>> # 原博文依然用到了 lambda 表达式

    >>> # 我就再生搬硬套一次, 把上面的复制过来

    >>> # 蹩脚地用一个全局变量i, 和映射函数mapper()

    >>> i = 0

    >>> def mapper(x): # 映射函数即 mapper

    global i

    x += '_' + str(i)

    i += 1

    return x

    dataset.rename(columns=mapper, inplace=True)

    稍微总结一下 : 字典推导和列表推导的使用方法很类似, 最大的区别是选择中括号还是大括号

    写在最后

    十分欢迎大家直接修改拙作或提出建议!!!

    展开全文
  • python 修改dataframe列名

    千次阅读 2019-10-03 10:49:14
    python 修改dataframe列名 1. 修改全部列名 df.columns base_data_model.columns = [u'有效率',u'提交率',u'参与度',u'回放占比',u'主好评率',u'辅好评率',u'是否付费'] ...

    1. 修改全部列名 df.columns

    base_data_model.columns = [u'有效率',u'提交率',u'参与度',u'回放占比',u'主好评率',u'辅好评率',u'是否付费']  

     

    2. 修改指定列名 df.rename

    df.rename(columns={'a':'A'})
    #把原来的 a 命名为 A

     

    posted on 2018-09-19 09:34  Suckseedeva 阅读( ...) 评论( ...) 编辑 收藏

    转载于:https://www.cnblogs.com/skyEva/p/9672777.html

    展开全文
  • You can use this solution: import pandas as pd x = pd.DataFrame([{'Id':2, 'A':"no", 'B':"no", 'C':"no", 'D':"yes"}, {'Id':3, 'A':"yes", 'B':"yes", 'C':"yes", 'D':"no"}, {'Id':4, 'A':"yes", 'B':"no", '...

    I want to convert following values using loop.

    {'Id':2, 'A':"no", 'B':"no", 'C':"no", 'D':"yes"},

    {'Id':3, 'A':"yes", 'B':"yes", 'C':"yes", 'D':"no"},

    {'Id':4, 'A':"yes", 'B':"no", 'C':"yes", 'D':"no"},

    {'Id':5, 'A':"no", 'B':"yes", 'C':"no", 'D':"yes"}]

    I have used 'map' for indivisual rows. But I want to loop it.

    df['B'] = df['B'].map({"yes": "B", "no": "-"})

    df['C'] = df['C'].map({"yes": "C", "no": "-"})

    df['D'] = df['D'].map({"yes": "D", "no": "-"})

    (Link to result)https://ibb.co/JsJjqZr

    Help me to use loop please.

    解决方案

    You can use this solution:

    import pandas as pd

    x = pd.DataFrame([{'Id':2, 'A':"no", 'B':"no", 'C':"no", 'D':"yes"},

    {'Id':3, 'A':"yes", 'B':"yes", 'C':"yes", 'D':"no"},

    {'Id':4, 'A':"yes", 'B':"no", 'C':"yes", 'D':"no"},

    {'Id':5, 'A':"no", 'B':"yes", 'C':"no", 'D':"yes"}])

    x.set_index('Id')

    headers = x.columns.to_list()

    for col in headers:

    x[col] = x[col].map({"yes":col, "no":"-"})

    展开全文
  • 日常在处理数据的时候,经常需要对dataframe进行重排,只取其中几列或者更改列名等操作; 有两个相似的方法reindex和rename,与此记录一下常见的用法,并标注一下区别: rename:重命名,就是对col列进行命名的...
  • Pandas重命名有三种方法:1、使用columns重命名>>> df = pd.DataFrame({'$a':[1,2], '$b': [10,20]})>>> df.columns = ['a', 'b']>>> dfa b0 1 101 2 20这种重命名方法是直接在原来的dataframe修改。但需要对所有...
  • python语言 pyspark中dataframe修改列名

    千次阅读 2017-10-11 11:18:57
    这里给出在spark中对dataframe修改列名。 df = sqlContext.read.parquet("/user/用户名/123.parquet") ##########df数据实例 linkPh ph 123 456 ##########把列名分别修改为name和value df.selectExpr("linkPh...
  • python——修改Dataframe列名的两种方法

    万次阅读 多人点赞 2017-06-02 20:51:01
    首先新建一个Dataframe import pandas as pd df = pd.DataFrame({'a':[1,2,3],'b':[1,2,3]}) 如下: a b 0 1 1 1 2 2 2 3 3 1、修改列名a,b为A、B。 df.columns = ['A','B'] ...2、只修改列名a为A
  • Python3】DataFrame重命名列名

    万次阅读 2019-06-06 12:34:43
    2.使用rename方法重命名,这个方法在你只想改部分列名时十分好用,默认是使用新的DataFrame,可以自己选择参数inplace为True在原DataFrame更改。 欢迎关注微信公众号:516数据工作室 ...
  • python 修改dataframe列名的几种方法

    千次阅读 2021-01-25 14:08:20
    实际开发中经常有修改dataframe列名的需求,特意总结了如下可用的几种方法。 import pandas as pd def t1(): df = pd.DataFrame({'c1':[1, 2, 3], 'c2': [4, 5, 6]}) print(df) df.columns = ['d1', 'd2'] ...
  • python修改Dataframe列名的两种方法

    万次阅读 多人点赞 2020-03-26 17:29:04
    首先新建一个Dataframe import pandas as pd df = pd.DataFrame({'a':[1,2,3],'b':[1,2,3]}) ...1、修改列名a,b为A、B。 df.columns = ['A','B'] 2、只修改列名a为A df.rename(columns={'a':'A'}) ...
  • Dataframe修改列名

    2021-05-31 11:49:25
    先做一个Dataframe: import pandas as pd a = pd.DataFrame({'A':[1,2,3], 'B':[4,5,6], 'C':[7,8,9]})
  • Python_Pandas学习笔记02:DataFrame获取列名修改列名

    万次阅读 多人点赞 2019-06-02 18:08:18
    Pandas获取列名修改列名
  • 问题描述 先随机生成一个4*3的Dataframe,如图所示,列名分别为0...当使用df.columns进行列名修改时,切记后边直接跟列表即可,不要再对列表进行包装,如下所示: df.columns = ['a', 'b', 'c'] # 正确写法 只有这么
  • Pandas中的DataFrame修改列名

    千次阅读 2019-09-13 08:58:26
    方法一 from pandas import DataFrame, Series data = DataFrame({"a":[1, 2, 3, 4], ...data.columns = ["c", "d"]#直接在原数据上修改 方法二 from pandas import DataFrame, Series data = DataFrame({"a":[1, ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,701
精华内容 2,280
关键字:

pythondataframe修改列名

python 订阅