1
数値の値がカンマ(、)で区切られたデータフレーム列があります。私はその列の各セルの値の合計を見つけて、新しい列を作成しようとしています。Pythonを使用してデータフレーム列のコンマで区切られたセルの値を集計します。
入力: 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で適用機能を利用することができるように
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)
しかし、私は意図した結果を得ることができません。
編集:ソリューション
df['Sum'] = df['Scores'].apply(lambda x: sum(map(float, x.split(','))))
を提供するためのDeepSpaceへ おかげで同じが
id Scores Median
1 10,12 11
2 11 11
3 1,2,3 2
ありがとうございました。コードは上記の場合に対応しています。しかし、私の得点が小数点以下にあるときは、エラーが発生しています(id 1の場合は0.9,0.8、id 2の場合は0.2、id 3の場合は0.3,0.2,0.5)Error:ValueError:基数10の '0.9のint() ' – Sam
@Samだから、 'int'の代わりに' float'を使用してください。 – DeepSpace
ありがとうございました:)...平均、中央値を計算したいとします。 sumはグローバル関数なので、どのようにすればよいかお教えください。 – Sam