分解数据框值并求和

时间:2018-09-22 08:21:19

标签: python dataframe sum

我想按空格细分数据框行的值并求和。但是,我陷入其中

数据:

mydf
words              number   labels
travel abroad     1        Not_Zero
abroad holiday    0        Zero
holiday vacation  2        Not_Zero

步骤1:按空格细分“单词”列: 这会给我一个单词列表:

travel holiday vacation

第2步:对单个单词的数字列求和,并保留标签列。

第3步:如果单个单词同时标记为零和Not_Zero,请使用Not_Zero

words    number    labels
travel   1         Not_Zero
abroad   1         Not_Zero
holiday  2         Not_Zero
vacation 2         Not_Zero

到目前为止,我已经完成了第1步和第2步,将单词按空格分割并求和

def cutKeyAndCount(pRow):
    split= pRow['words'].split(' ')
    num = int(pRow['number'])
    for l in split:
        if len(df) > 0 and len(df.loc[df['key'] == l]):
            temp =  int(df.loc[df['key'] == l]['count']) + application
            df.loc[df['key'] == l,'count']= temp
        else:
            df.loc[len(df)] = [l,num]

df = pd.DataFrame(columns=['key','count'])
for i in range(0,len(mydf)):
    cutKeyAndCount(mydf.iloc[i])

但是,我不知道该怎么做,请问有人可以给我一些建议吗?在此先谢谢您!

1 个答案:

答案 0 :(得分:0)

这有点困难,因为您显示的代码对我不起作用(应用程序未定义),但是以下代码可以工作吗?

import numpy as np
df['counts'] = df['counts'].astype(int)
df['labels'] = np.where(df['counts'] == 0, 'Zero', 'Not_Zero')