Python 如何保留Pandas在我的组中使用的列名

Python 如何保留Pandas在我的组中使用的列名,python,pandas,pandas-groupby,Python,Pandas,Pandas Groupby,我有两个数据帧。我想在第二个数据框中使用GROUPBY,然后在“公司名称”列中将两者合并在一起。问题是,在我的GROUPBY语句中,我失去了“公司名称”列 import pandas as pd df1 = pd.DataFrame( { 'Company Name': ['Google','Google','Microsoft','Microsoft','Amazon','Amazon'], 'Location': ['Somewhere','Some

我有两个数据帧。我想在第二个数据框中使用GROUPBY,然后在“公司名称”列中将两者合并在一起。问题是,在我的GROUPBY语句中,我失去了“公司名称”列

import pandas as pd

df1 = pd.DataFrame(
    {
        'Company Name': ['Google','Google','Microsoft','Microsoft','Amazon','Amazon'],
        'Location': ['Somewhere','Somewhere','Somewhere','Somewhere','Somewhere','Somewhere'],
    }
)

df = pd.DataFrame(
    {
        'Company Name': ['Google','Google','Microsoft','Microsoft','Amazon','Amazon'],
        'Sales': [12345,12345,12345,12345,12345,12345],
        'Company Type': ['Software','Software','Software','Software','Software','Software']
    }
)
df = df.groupby(['Company Name']).sum()

pd.merge(df1,df,how="inner",on="Company Name")

我在合并时收到一条错误消息,因为df没有公司名称列来执行合并。

替换此行:

df = df.groupby(['Company Name']).sum()
与:

然后,您的代码将按预期工作,并返回:

  Company Name   Location  Sales
0       Google  Somewhere  24690
1       Google  Somewhere  24690
2    Microsoft  Somewhere  24690
3    Microsoft  Somewhere  24690
4       Amazon  Somewhere  24690
5       Amazon  Somewhere  24690

试试df=df.groupby(['Company Name'],as_index=False)。sum()什么错误?我在py2.7中运行它,没有错误,因为_index=False似乎有效。@tink3r既然您有15个声誉,请同时单击向上箭头,向上投票
  Company Name   Location  Sales
0       Google  Somewhere  24690
1       Google  Somewhere  24690
2    Microsoft  Somewhere  24690
3    Microsoft  Somewhere  24690
4       Amazon  Somewhere  24690
5       Amazon  Somewhere  24690