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()之间有空格。
。另外,请查看如何接受答案。非常感谢。