【问题标题】:Partially Renaming Columns in Pandas DataFrame部分重命名 Pandas DataFrame 中的列
【发布时间】:2017-03-05 06:39:35
【问题描述】:

我正在尝试重命名 DataFrame 的前 N ​​列。

import pandas as pd
Dat = pd.read_csv(inputName, delimiter='\t', header=0)

原来的表格是这样的:

$Date        $ciq_ticker    $industry        price    ...
'09/30/2016  'AAPL'         'Technology'     100.00
'09/30/2016  'AMZN'         'Consumer'       1000.00
...

我想让一些列名更直观。我的想法是这样的:

descriptors = ['date','ticker','industry']
Dat.columns[:len(descriptors)] = descriptors

这给出了“索引不支持可变操作”的错误。

我知道这样的工作:

Dat.rename(columns={'$Date': 'date', '$ciq_ticker': 'ticker', '$industry': 'industry'}, inplace=True)

但我只是不喜欢必须显式键入原始列名的想法。事实是,真正的表有 20 多列需要我修改。

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    试试这个:

    In [91]: cols = ['date','ticker','industry']
    
    In [92]: df
    Out[92]:
            $Date $ciq_ticker   $industry   price
    0  09/30/2016        AAPL  Technology   100.0
    1  09/30/2016        AMZN    Consumer  1000.0
    
    In [93]: df.columns = cols + df.columns.tolist()[len(cols):]
    
    In [94]: df
    Out[94]:
             date ticker    industry   price
    0  09/30/2016   AAPL  Technology   100.0
    1  09/30/2016   AMZN    Consumer  1000.0
    

    【讨论】:

    • 好吧显然诀窍就是这个 .tolist 东西。我无法使用 Dat.columns[:len(descriptors)] 直接操作列名。
    猜你喜欢
    • 2021-04-24
    • 2019-07-21
    • 1970-01-01
    • 2019-12-01
    • 2013-11-19
    • 2020-06-06
    • 2013-08-17
    相关资源
    最近更新 更多