我想按空格细分数据框行的值并求和。但是,我陷入其中
数据:
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])
但是,我不知道该怎么做,请问有人可以给我一些建议吗?在此先谢谢您!
答案 0 :(得分:0)
这有点困难,因为您显示的代码对我不起作用(应用程序未定义),但是以下代码可以工作吗?
import numpy as np
df['counts'] = df['counts'].astype(int)
df['labels'] = np.where(df['counts'] == 0, 'Zero', 'Not_Zero')