繁体   English   中英

pandas grouby 问题:在一个数据框中合并两行

[英]pandas grouby problems: merge two rows in one dataframe

我需要在一个数据框中合并具有相同索引的所有行。 我得到了堆栈溢出的解决方案,但遇到了一些问题:

 import pandas as pd import numpy as np three = {'name':['ming', 'viper', 'rookie'], 'year':[1997, 1998, np.nan]} one = {'name':['rookie'], 'year':[1995]} df3 = pd.DataFrame(three, index=['rng', 'edg', 'ig']) df2 = pd.DataFrame(one, index=['ig']) df_concat = pd.concat([df2, df3]) print(df_concat)
df_concat 是:

在此处输入图片说明

我以这种方式使用 grouby() 方法:

 df_g = df_concat.groupby(level=0, sort=False).sum() print(df_g)

然而,结果不是我所期望的: 在此处输入图片说明

为什么“名称”列丢失了?

通过agg()尝试:

df_g=df_concat.groupby(level=0, sort=False).agg({'name':'first','year':'sum'})

df_g输出:

       name     year
ig     rookie   1995.0
rng     ming    1997.0
edg     viper   1998.0

注意:在此代码中df_concat.groupby(level=0, sort=False).sum()因为 name 列中的值不是数字所以这不包括 name 列的值和在 year 上执行sum()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM