即使列值不是唯一的,也要进行汇总

zfciruhq  于 2021-09-08  发布在  Java
关注(0)|答案(1)|浏览(233)

我有以下 Dataframe :

df = pd.DataFrame({'ISIN': ['A1kT23', 'A1kT23', 'B333', '49O33'],
                   'Name': ['Example A', 'Name Xy', 'Example B', 'Test123'],
                   'Sector': ['Energy', 'Energy', 'Utilities', 'Real Estate'],
                   'Value': [100, 50, 7, 23]})
ISIN       Name       Sector  Value
0  A1kT23  Example A       Energy    100
1  A1kT23    Name Xy       Energy     50
2    B333  Example B    Utilities      7
3   49O33    Test123  Real Estate     23

我想用伊辛来总结一下。问题是名称不是唯一的。总结时,我希望使用第一个名称(示例a)而不是第二个名称(名称xy),以便得到以下结果:

df = pd.DataFrame({'ISIN': ['A1kT23', 'B333', '49O33'],
                   'Name': ['Example A', 'Example B', 'Test123'],
                   'Sector': ['Energy', 'Utilities', 'Real Estate'],
                   'Value': [150, 7, 23]})
ISIN       Name       Sector  Value
0  A1kT23  Example A       Energy    150
1    B333  Example B    Utilities      7
2   49O33    Test123  Real Estate     23

我怎样才能解决这个问题?

agxfikkp

agxfikkp1#

让我们试试看 groupby aggregate 并保持 'first' 价值 NameSector
'sum' Value :

df = df.groupby('ISIN', as_index=False, sort=False).agg({
    'Name': 'first', 'Sector': 'first', 'Value': 'sum'
})
``` `df` :

ISIN Name Sector Value
0 A1kT23 Example A Energy 150
1 B333 Example B Utilities 7
2 49O33 Test123 Real Estate 23

相关问题