pandas - 如何根据组 ID 和第一个值的百分比创建新的 Pandas 列?
解决方案
试试这个:
>>> df["Age_first"]=df.join(df.groupby(df["Name"]).agg({"Age":"first"}), on="Name", rsuffix="_2")[["Age_2"]]
>>> df["Ratio"]=df["Age"]/df["Age_first"]
>>> df
Name Age Age_first Ratio
0 A 2 2 1.0
1 A 3 2 1.5
2 A 1 2 0.5
3 B 10 10 1.0
4 B 8 10 0.8
5 B 12 10 1.2
>>> df = df.drop("Age_first", axis=1)
>>> df
Name Age Ratio
0 A 2 1.0
1 A 3 1.5
2 A 1 0.5
3 B 10 1.0
4 B 8 0.8
5 B 12 1.2
推荐阅读
- java - 我不明白这是如何决定什么是素数和不是素数
- javascript - 使用 JavaScript 将具有复杂 svgs 的 html 转换为图像格式
- latex - 如何在乳胶中更改乳胶默认文本块边框颜色
- c - How do you sort struct members to a Queue in C?
- linux - 如何让两个程序使用 std io 进行通信?
- python - 无法选择列表元素并将其附加到现有 csv 中
- html - 如何在角度 7 的表中添加搜索过滤器
- javascript - 附加到 SourceBuffer 的 HTML 5 视频和音频变得不同步
- mongodb - MongoDB 内部连接的两个查询或聚合查找
- reactjs - 代码拆分不适用于 CRA + React Route v4 + 代码拆分