Viv*_*ash 2 python sorting loops pandas group
来自数据框 df1 =
| 区域 | 顺序 | X | 是 |
|---|---|---|---|
| A | 2 | 604582.25 | 320710 |
| A | 1 | 604590.25 | 320704.75 |
| A | 3 | 604579.25 | 320710 |
| 乙 | 2 | 536584.47 | 176977.83 |
| 乙 | 1 | 536570 | 176996.43 |
| C | 1 | 509202.13 | 307995.99 |
| C | 2 | 509205.3 | 307951.24 |
需要生成成
df1 =
| 区域 | XY_by_sequence |
|---|---|
| A | 604590.25 320704.75 , 604582.25 320710 , 604579.25 320710 |
| 乙 | 536570 176996.43 , 536584.47 176977.83 |
| C | 509202.13 307995.99 , 509205.3 307951.24 |
尝试:
x = (
df.set_index(["Area", "Sequence"])
.stack()
.groupby(level=[0, 1])
.agg(lambda x: " ".join(map(str, x)))
.groupby(level=0)
.agg(", ".join)
.reset_index(name="XY_by_sequence")
)
print(x)
Run Code Online (Sandbox Code Playgroud)
印刷:
Area XY_by_sequence
0 A 604590.25 320704.75, 604582.25 320710.0, 604579.25 320710.0
1 B 536570.0 176996.43, 536584.47 176977.83
2 C 509202.13 307995.99, 509205.3 307951.24
Run Code Online (Sandbox Code Playgroud)