python - 在熊猫中,应该如何添加年龄范围列?
问题描述
假设我有一个简单的 DataFrame,它详细说明了人们在一生中演奏音乐的时间,如下所示:
import pandas as pd
df = pd.DataFrame(
[[15, 8, 7],
[20, 10, 10],
[35, 15, 20],
[50, 12, 38]],
columns=['current age', 'age started playing music', 'years playing music'])
应该如何添加额外的栏目来分解他们每十年演奏音乐的年数?例如,如果添加的列是 0-10、10-20、20-30 等,那么第一个人在第一个十年演奏音乐的时间为 2 年,第二个十年为 5,第三个为 0,以此类推。
解决方案
您也可以尝试使用pd.cut
and value_counts
:
df.join(df.apply(lambda x: pd.cut(np.arange(x['age started playing music'],
x['current age']),
bins=[0, 9, 19, 29, 39, 49],
labels=['0-10', '10-20',
'20-30', '30-40',
'40+'])
.value_counts(),
axis=1))
输出:
current age age started playing music years playing music 0-10 10-20 20-30 30-40 40+
0 15 8 7 2 5 0 0 0
1 20 10 10 0 10 0 0 0
2 35 15 20 0 5 10 5 0
3 50 12 38 0 8 10 10 10
推荐阅读
- node.js - 检查特定字段的值是否更改
- simpy - 如果当时所有资源都在使用,如何忘记客户
- python-3.x - MySQL 连接器:无法处理参数无法删除行
- java - 如何在 android studio 中从 ms sql 检索数据到文本视图
- reactjs - React 日期选择器仅在预期日期时返回所有数据
- rest - 对请求的响应总是返回 GET
- reactjs - 如何添加新的 html 文件来响应应用程序?
- prisma - 如何在 prisma-graphql 中实现 CreateMany 变异解析器
- angular - Angular - 如何将点击事件处理程序添加到动态添加的内容
- php - PHP jQuery AJAX 我不知道在标题中写什么