【问题标题】:DataFrameGroupBy object Column NameDataFrameGroupBy 对象列名
【发布时间】:2014-10-06 21:29:09
【问题描述】:

我有一个 DataFrameGroupBy 对象(即它不是数据框,而是按数据框分组),它具有重复的列名。 如何更改其中一个重复的列名。 (使用 .rename 失败)

由于有两个列名具有相同的“标签”,我如何保持其中一个列名不变并更改另一个列名。 谢谢

举个例子:

import pandas as pd
import numpy as np
df = pd.DataFrame({'Stock' : ['apple', 'ford', 'google', 'samsung','walmart', 'kroger'],
                       'Sector' : ['tech', 'auto', 'tech', 'tech','retail', 'retail'],
                       'Price': np.random.randn(6),
                       'Signal' : np.random.randn(6)},  columns= ['Stock','Sector','Price','Signal'])
    dfg = df.groupby([df['Sector'],df['Price'],(df.Price*2)])
    dfg.head()

-以上将在 DataFrameGroupBy 中产生名为“Price”的两列。 我想保留“价格”列并将另一列重命名为“价格平方”。

谢谢,

【问题讨论】:

    标签: python pandas rename dataframe


    【解决方案1】:

    为什么不在分组前计算列?

    df['PriceSquared'] = df['Price'] * 2
    dfg = df.groupby(['Sector', 'Price', 'PriceSquared'])
    

    编辑: 据我所知,重命名系列的两种方法是:

    s = df.Price * 2
    s.name = 'PriceSquared'
    

    s = pd.Series(df.Price * 2, name='PriceSquared')
    

    【讨论】:

    • 是的,当然可以。但是,我正在寻找一种不解决特定问题的方法,而是在 DataFrameGroupBy 对象中存在重复列名时试图找出“如何更改列名”的答案。谢谢,
    • @user3923585 - 查看编辑可能会完成此操作
    • 谢谢,不幸的是,它没有回答“如何更改 'DataFrameGroupBy 对象' 中的重复列名之一的问题
    • 我想我不明白您为什么需要这样做,所以我不确定是否有公开的功能可以这样做。创建 GroupBy 对象并没有真正“做”任何事情(只是定义了一个映射但没有真正的计算),因此在传递给 GroupBy 之前更改列名总是同样有效。
    猜你喜欢
    • 2018-01-02
    • 1970-01-01
    • 1970-01-01
    • 2019-12-01
    • 2021-07-03
    • 1970-01-01
    • 2012-11-14
    • 1970-01-01
    • 2022-11-28
    相关资源
    最近更新 更多