python - 根据特定增量将数据分组在一起
问题描述
我在 python 中有一个二维列表,例如:
[['Xzavier Kaska', 1.04], ['Brent Barnaby', 1.13], ['Alena Holoien', 1.37],
['Sam Surey', 1.37], ['Kash Nocella', 1.55], ['Ezequiel Gerraughty', 1.57],
['Myah Linsley', 1.74], ['Jaelynn Dzur', 1.79], ['Alfredo Andrew', 1.83],
['Skylar Movius', 1.95], ['Raphael Nocella', 2.14], ['Alondra Wallace', 2.2],
['Clark Loomis', 2.3], ['Skylar Cvek', 2.36], ['Carson Racugno', 2.52],
['Kathy Viveros-aguilera', 2.62], ['Heaven Barnaby', 2.75],
['Rebekah\tSpartichino', 3.24], ['Semaj Abernathy', 3.35], ['Rylee Dalton', 3.38],
['Sterling Grove', 3.46], ['Rebekah Ghosh', 3.85]]
其中索引 0 代表学生姓名,索引 1 代表每个学生的 gpa。
我想根据 gpa 的增量将上述数据中的两对组合在一起。示例:按 1.0 的增量对它们进行分组...拥有 gpa0.0-1.0
的学生联合在一起,例如[0.0-0.1), [0.1-0.2), ...[3.9-4.0]
;
[0.0-0.5],[0.5-1.0),...[3.5-4]
; [0-1),[1,2),[2,3),[3,4)
.
解决方案
您可以使用pandas,它是数据科学家在 python 中使用的库。有大量的在线支持,所以你永远不会卡住。
对于您的特定问题:
import pandas as pd
l = [['Xzavier Kaska', 1.04], ['Brent Barnaby', 1.13], ['Alena Holoien', 1.37],
['Sam Surey', 1.37], ['Kash Nocella', 1.55], ['Ezequiel Gerraughty', 1.57],
['Myah Linsley', 1.74], ['Jaelynn Dzur', 1.79], ['Alfredo Andrew', 1.83],
['Skylar Movius', 1.95], ['Raphael Nocella', 2.14], ['Alondra Wallace', 2.2],
['Clark Loomis', 2.3], ['Skylar Cvek', 2.36], ['Carson Racugno', 2.52],
['Kathy Viveros-aguilera', 2.62], ['Heaven Barnaby', 2.75],
['Rebekah\tSpartichino', 3.24], ['Semaj Abernathy', 3.35], ['Rylee Dalton', 3.38],
['Sterling Grove', 3.46], ['Rebekah Ghosh', 3.85]]
# Create a dataframe with your data.
df = pd.DataFrame(l, columns=['Name','GPA'])
# select the portion of dataframe in which the GPA is between 1 and 2
# (you can set your own parameters here)
df2 = df.loc[(df['GPA'] > 1) & (df['GPA'] < 2)]
输出:
Name GPA
0 Xzavier Kaska 1.04
1 Brent Barnaby 1.13
2 Alena Holoien 1.37
3 Sam Surey 1.37
4 Kash Nocella 1.55
5 Ezequiel Gerraughty 1.57
6 Myah Linsley 1.74
7 Jaelynn Dzur 1.79
8 Alfredo Andrew 1.83
9 Skylar Movius 1.95
然后,如果您想返回一个类似于您所拥有的列表:
list_1to2 = list(df2['Name'])
list_1to2.append('1-2')
print(list_1to2)
#repeat for each group...
输出:
['Xzavier Kaska', 'Brent Barnaby', 'Alena Holoien', 'Sam Surey', 'Kash Nocella', 'Ezequiel Gerraughty', 'Myah Linsley', 'Jaelynn Dzur', 'Alfredo Andrew', 'Skylar Movius', '1-2']
推荐阅读
- python - PDFKit & PyPDF2 - 无法读取格式错误的 PDF 文件
- python-3.x - 如何在 Keras Embedding 层中使用 BERT 预训练模型
- java - 如何使此方法只有 1 个返回语句而不是 2 个
- html - 当角色 =“tab”时,Windows 旁白没有宣布展开/折叠状态.....辅助功能
- reactjs - 组件 div 背景和实际背景颜色之间的冲突
- c++ - 如何访问 std::variant 中的类型?
- c++ - C++ 错误“_main”,引用自:“Xcode
- php - sql查询未执行
- angular - 在 Angular 中渲染一个子组件 afterViewInit
- python - Tkinter 的超类