【发布时间】:2017-11-15 15:31:28
【问题描述】:
我有一个数据框列,其中的数值由逗号(,)分隔。我正在尝试查找该列的每个单元格中的值的总和并创建一个新列。
输入: df:
id Scores
1 10,12
2 11
3 1,2,3
需要输出:
id Scores Sum
1 10,12 22
2 11 11
3 1,2,3 6
代码:我试过写一个自定义函数,这样我就可以在python中使用apply函数了
def sum_of_number(listx):
a=[]
n=0
if len(listx)==1:
a=listx
n=a
else:
a=str(listx).split(',')
for i in range(0,len(a)):
n=n+int(a[i])
return n
df['Sum']=df.Scores.apply(sum_of_number)
但我无法获得预期的结果。
编辑: 感谢 DeepSpace 提供解决方案
df['Sum'] = df['Scores'].apply(lambda x: sum(map(float, x.split(','))))
同样可以得到中位数
id Scores Median
1 10,12 11
2 11 11
3 1,2,3 2
【问题讨论】: