Pandas 如何将每行中的第一个单词的行数相加为第一个单词的总和?

Pandas 如何将每行中的第一个单词的行数相加为第一个单词的总和?,pandas,dataframe,numpy,Pandas,Dataframe,Numpy,例如,在名为“水果”的列中 'fruit' val1 val2 apple bottom 1 2 apple shot 3 4 输出: apple 4 6 val1 val2 fruit apple 4 6 如果上面是一个数据帧,我如何获得输出 假设您有这样一个df: fruit val1 val2 0 apple bottom 1 2 1 apple shot 3

例如,在名为“水果”的列中

'fruit'      val1 val2
apple bottom  1    2 
apple shot    3    4 
输出:

apple 4 6
       val1 val2
fruit       
apple   4   6
如果上面是一个数据帧,我如何获得输出


假设您有这样一个df:

          fruit  val1  val2
0  apple bottom     1     2
1    apple shot     3     4
您可以通过
groupby
获得结果:

df = df.groupby(df.fruit.str.split(' ').str[0].values).agg({'val1':  sum, 'val2' : sum})
输出:

       val1  val2
apple     4     6
注意
:您可以在
agg
内的
dict
中指定不同的方法。 如果您只需要
总和
,则始终可以使用较小的版本

df = df.groupby(df.fruit.str.split(' ').str[0]).sum()

@Nk03建议答案的简短版本:

df.groupby(df.fruit.str.split(' ').str[0]).sum()
输出:

apple 4 6
       val1 val2
fruit       
apple   4   6
如果您的列名中有空格,如OP的注释,请使用:

df.groupby(df[' line item'].str.split(' ').str[0]).sum()

如果水果是“水果线”呢?如何用空格输入col name?它是第一列,如果该列不是'fruit',而是'line item'呢?列名?
df.groupby(df['line item'].str.split('').str[0]).sum()之间有空格。
。另外,请查看如何接受答案。非常感谢。