精华内容
下载资源
问答
  • 本文参考自: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列名的两种方法

    万次阅读 多人点赞 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

    首先新建一个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

    df.rename(columns={'a':'A'})

     

    如你想了解更多关于python和spark以及机器学习的知识,可以关注下面的公众号我们一起沟通交流。

     

    展开全文
  • python pandas 修改列名

    2021-05-12 10:47:28
    https://www.jb51.net/article/137888.htm还有其他若干方法。

     

    https://www.jb51.net/article/137888.htm还有其他若干方法。

     

     

    展开全文
  • Following this recipe. I 'pivoted' a dataframe that looks like this:Close2015-02-20 14:00:00 1200.12015-02-20 14:10:00 1199.82015-02-21 14:00:00 1199.32015-02-21 14:10:00 1199.02015-02-22 14:00:00...

    Following this recipe. I 'pivoted' a dataframe that looks like this:

    Close

    2015-02-20 14:00:00 1200.1

    2015-02-20 14:10:00 1199.8

    2015-02-21 14:00:00 1199.3

    2015-02-21 14:10:00 1199.0

    2015-02-22 14:00:00 1198.4

    2015-02-22 14:10:00 1199.7

    And turned it into this:

    14:00 14:10

    2015-02-20 1200.1 1199.8

    2015-02-21 1199.3 1199.0

    2015-02-22 1198.4 1199.7

    However, now that I want do to simple calculations between the columns like:

    df['Chg'] = df['14:10:00'] - df['14:00:00']

    I get a KeyError, because after 'pivoting' the column names are datetime.time data.

    In [1]: df_pivot.columns.tolist()

    Out [2]:

    [datetime.time(14, 0),

    datetime.time(14, 10)]

    How can I modify my pivoted dataframe, so I can do simple calculations between columns. I guess It means changing the format of the column names from datetime.time to str.

    Thanks

    解决方案

    You can convert the column names to strings like this:

    df.columns =df.columns.map(lambda t: t.strftime('%H:%M'))

    or using rename:

    df.rename(columns =lambda t: t.strftime('%H:%M'), inplace=True)

    and then index them:

    df['14:00']

    returns:

    2015-02-20 2399.9

    2015-02-21 NaN

    2015-02-22 NaN

    Name: 14:00, dtype: float64

    展开全文
  • 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'}) ...
  • 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 pandas 修改列名,索引名

    千次阅读 2020-09-24 21:36:24
    第一,重命名 a = pd.DataFame(np.arange(12).reshape(3,4),columns=[‘a’,‘b’,‘c’,‘d’]) a.columns = [‘a1’,‘b1’,‘c1’,‘d1’] 第二,引入字典 (rename + 字典 ) a.rename(columns = {‘a’:‘a1’},...
  • python 修改dataframe的列名

    千次阅读 2018-09-19 09:34:00
    python 修改dataframe的列名 1. 修改全部列名 df.columns base_data_model.columns = [u'有效率',u'提交率',u'参与度',u'回放占比',u'主好评率',u'辅好评率',u'是否付费'] 2. 修改指定列名 ...
  • Python_Pandas学习笔记02:DataFrame获取列名和修改列名

    万次阅读 多人点赞 2019-06-02 18:08:18
    Pandas获取列名和修改列名
  • 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"},{...
  • 好处是可以随意个数: >>> a . rename (columns={ 'A' : 'a' , 'C' : 'c' }, inplace = True) >>> a a B c 0 1 4 7 1 2 5 8 2 3 6 9 可以只改变’A’,’C’,不改变’B’。
  • 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...
  • pandas 修改列名

    万次阅读 多人点赞 2018-08-07 09:33:22
    利用pandas中修改列名 import pandas as pd df1=pd.DataFrame({'A':[1,2,3],'B':[4,5,6],'C':[7,8,9]}) print(df1) 生成的df1的结果: 修改列名: #method1,直接重新命名df1的列名 df1.columns=['a','B'...
  • python笔记: 用columns修改列名

    万次阅读 2018-09-12 05:24:14
    有一个DataFrame,列名为:['$a', '$b', '$c', '$d', '$e'] 现在要修改为['a', 'b', 'c', 'd', 'e'] import pandas as pd df = pd.DataFrame({'$a': [1], '$b': [1], '$c': [1], '$d': [1], '$e': [1]}) df....
  • python pandas 写入dataframe和Series改列名

    千次阅读 2020-05-09 23:11:05
    dataframe可以用下面的方法直接改列名 test.columns = [‘c’,‘b’] test.rename(columns={‘a’:‘c’},inplace=True) 而只有一列时,需要用下面的方法 data0=data0[‘Close’] data0.rename(ticker,inplace=True)
  • pandas修改列名

    千次阅读 2019-01-11 10:25:53
    pandas读取数据之后经常需要修改列名,那么该怎么修改呢?? import pandas as pd a = pd.DataFrame({'A':[1,2,3], 'B':[4,5,6], 'C':[7,8,9]}) 1.简单粗暴 a.columns = ['第一列', '第二列', '第三列'] a   ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 17,600
精华内容 7,040
关键字:

python改列名

python 订阅