DataFrameGroupBy对象列名

时间:2014-08-13 13:29:15

标签: python pandas rename dataframe

我有一个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()

- 以上将导致两列名为' Price'在DataFrameGroupBy中。 我想保持' Price'列并将另一个重命名为' PriceSquared'。

谢谢,

1 个答案:

答案 0 :(得分:2)

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

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')