Python DataFrameGroupBy对象列名
我有一个DataFrameGroupBy对象(即,它不是dataframe,而是一个grouped by dataframe),具有重复的列名。 如何更改其中一个重复的列名。(使用.rename失败) 因为有两个列名具有相同的“标签”,所以如何保持其中一个列名的完整性并更改另一个列名。 谢谢 例如: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
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')