这是我的数据帧
Candidate Name Score
0 04cb11ef8edf16e46a21741d8f41a2a4e5b87309938835... 0
1 04cb11ef8edf16e46a21741d8f41a2a4e5b87309938835... 3
2 04cb11ef8edf16e46a21741d8f41a2a4e5b87309938835... 4
0 092c7c810ede0567b8e23322f47dd2e00e99e573d03292... 0
0 5ec10b8c7f6de34b171d9eaf2feb3eb8259e885c9ec1ce... 3
0 9e9bd06cafe352be143b9ad048b502f2c705344a8317b2... 3
1 9e9bd06cafe352be143b9ad048b502f2c705344a8317b2... 4
2 9e9bd06cafe352be143b9ad048b502f2c705344a8317b2... 0
3 9e9bd06cafe352be143b9ad048b502f2c705344a8317b2... 0
0 a75af89c99cfa13a005a73fca54b2d47fe4721a61f33cc... 0
0 a828b55bf32197c6777ad2279d24c3a381f9cdfa2b83d5... 0
0 ab94b93874d3f259dd959233f9bc96216987c0059d52a3... 0
0 b37d73fa1edf8a54dc5026935c6779baedc870897cf286... 0
0 c1e3852952eacca7805fa35fc4d0878a2de95c45cf58f9... 0
0 c5d504030146fcc7d54dfc022c5b4cbf825f5fa5b1cd69... 0
0 c319b89c6ab27ee32dad62ce6f7f1704c3f143407f918a... 0
0 da8f8bd172979e343bda34213dc94d14745433a17f0e4f... 0
0 f8949169525d585e35ac14561321c4746cff6dc9a3ac3f... 0
问题是,我想在完成groupby()
和sum()
后获得总分,但我不确定一旦我完成了,它是否会变成JSON响应,因为之后的数据帧加起来不。。。
总分将替换分数列。公式中的总分是13的除法器,并转换为百分比。比方说得分3。总分为3/13*100=23.769230769
df = df.groupby(['Candidate Name'])['Score'].sum()
Candidate Name
04cb11ef8edf16e46a21741d8f41a2a4e5b873099388352c18fc168933111256 7
092c7c810ede0567b8e23322f47dd2e00e99e573d0329236b293dff49402fd1d 0
5ec10b8c7f6de34b171d9eaf2feb3eb8259e885c9ec1ceffb937d3ec69bd48b6 3
9e9bd06cafe352be143b9ad048b502f2c705344a8317b260e26dc7641018b735 7
a75af89c99cfa13a005a73fca54b2d47fe4721a61f33cc9e419e99de88d45bd1 0
a828b55bf32197c6777ad2279d24c3a381f9cdfa2b83d5631035cd20f058f0a1 0
ab94b93874d3f259dd959233f9bc96216987c0059d52a33e96cc85e6717b6d93 0
b37d73fa1edf8a54dc5026935c6779baedc870897cf286379c7d49a55371328c 0
c1e3852952eacca7805fa35fc4d0878a2de95c45cf58f994480877eb80074b23 0
c319b89c6ab27ee32dad62ce6f7f1704c3f143407f918a0327eb967236849d04 0
c5d504030146fcc7d54dfc022c5b4cbf825f5fa5b1cd69c9cccd10490f05e5c1 0
da8f8bd172979e343bda34213dc94d14745433a17f0e4f749ea5b91faf02a939 0
f8949169525d585e35ac14561321c4746cff6dc9a3ac3f4ce1b8d7e45d3177d4 0
Name: Score, dtype: int64
示例JSON看起来像这个
{"Mobile_Application_Developer": {"04cb11ef8edf16e46a21741d8f41a2a4e5b873099388352c18fc168933111256": 53.8461538462, "5ec10b8c7f6de34b171d9eaf2feb3eb8259e885c9ec1ceffb937d3ec69bd48b6": 23.0769230769}}
检索总分后需要插入Mobile_Application_Developer
值。
在第一步中将值除以13
并乘以100
,然后转换为字典:
d = df.groupby(['Candidate Name'])['Score'].sum().div(13).mul(100).to_dict()
print (d)
{'04cb11ef8edf16e46a21741d8f41a2a4e5b87309938835...': 53.84615384615385, '092c7c810ede0567b8e23322f47dd2e00e99e573d03292...': 0.0, '5ec10b8c7f6de34b171d9eaf2feb3eb8259e885c9ec1ce...': 23.076923076923077, '9e9bd06cafe352be143b9ad048b502f2c705344a8317b2...': 53.84615384615385, 'a75af89c99cfa13a005a73fca54b2d47fe4721a61f33cc...': 0.0, 'a828b55bf32197c6777ad2279d24c3a381f9cdfa2b83d5...': 0.0, 'ab94b93874d3f259dd959233f9bc96216987c0059d52a3...': 0.0, 'b37d73fa1edf8a54dc5026935c6779baedc870897cf286...': 0.0, 'c1e3852952eacca7805fa35fc4d0878a2de95c45cf58f9...': 0.0, 'c319b89c6ab27ee32dad62ce6f7f1704c3f143407f918a...': 0.0, 'c5d504030146fcc7d54dfc022c5b4cbf825f5fa5b1cd69...': 0.0, 'da8f8bd172979e343bda34213dc94d14745433a17f0e4f...': 0.0, 'f8949169525d585e35ac14561321c4746cff6dc9a3ac3f...': 0.0}
然后添加dict的外层并转换为json:
import json
json = json.dumps({"Mobile_Application_Developer":d})