Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python DataFrameGroupBy对象列名_Python_Pandas_Rename_Dataframe - Fatal编程技术网

Python DataFrameGroupBy对象列名

Python DataFrameGroupBy对象列名,python,pandas,rename,dataframe,Python,Pandas,Rename,Dataframe,我有一个DataFrameGroupBy对象(即,它不是dataframe,而是一个grouped by dataframe),具有重复的列名。 如何更改其中一个重复的列名。(使用.rename失败) 因为有两个列名具有相同的“标签”,所以如何保持其中一个列名的完整性并更改另一个列名。 谢谢 例如: import pandas as pd import numpy as np df = pd.DataFrame({'Stock' : ['apple', 'ford', 'google', 'sa

我有一个DataFrameGroupBy对象(即,它不是dataframe,而是一个grouped by dataframe),具有重复的列名。 如何更改其中一个重复的列名。(使用.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”。 我想保留“Price”列,并将另一列重命名为“PriceSquared”


谢谢,

为什么不在分组前计算列

df['PriceSquared'] = df['Price'] * 2
dfg = df.groupby(['Sector', 'Price', 'PriceSquared'])
编辑: 据我所知,重命名系列的两种方法是:

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


是的,当然可以。然而,我正在寻找一种方法来解决这个特定的问题,但试图找出一个答案,当DataFrameGroupBy对象中存在重复的列名时,如何更改列名。谢谢,@user3923585-请参见编辑,您可能会完成此任务谢谢,不幸的是,它没有回答“如何更改“DataFrameGroupBy对象”中的一个重复列名”的问题。我想我不明白您为什么需要这样做,所以我不确定是否有公开的功能可以这样做。创建GroupBy对象实际上并没有“做”任何事情(只是定义一个映射,但没有真正的计算),因此在传递给GroupBy之前更改列名总是同样有效的。
s = pd.Series(df.Price * 2, name='PriceSquared')