python - 计算列的不同值及其在下一列中的并行值映射
问题描述
输入:
df=pd.DataFrame(
{
'BusId':['ABC1','ABC1','ABC2','ABC4','ABC5','ABC5'],
'Route':[101,102,102,104,104,106]
})
df
需要计算 BusId 的不同值及其值映射。
预期输出 1:
BusId Route
101 ABC1
102 ABC1,ABC2
104 ABC4,ABC5
106 ABC5
预期输出 2:
BusId Route
101 1
102 2
104 2
106 1
谢谢您的帮助
解决方案
您可以创建DataFrame
一个DataFrameGroupBy.agg
:
df1 = df.groupby('Route')['BusId'].agg([','.join, 'size']).reset_index()
print (df1)
Route join size
0 101 ABC1 1
1 102 ABC1,ABC2 2
2 104 ABC4,ABC5 2
3 106 ABC5 1
但如果真的需要2个不同的df:
df2 = df.groupby('Route')['BusId'].apply(','.join).reset_index()
df3 = df.groupby('Route')['BusId'].size().reset_index()
推荐阅读
- reactjs - 如果条件,如何在 React 中添加图标
- common-lisp - (defun (setf …)) defsetf 和 define-setf-expander 的典型用例是什么
- python - 在更新 .txt 文件内容时,它会创建一个带有“?”的重复文件
- database - 如果我们更新数据库,应用服务器实例是否需要重启
- python-3.x - 如何将数组列表划分为子数组?
- validation - Yii2:独立验证不触发客户端验证
- node.js - package.json 脚本在 heroku 上失败
- html - 带透明度的 CSS 上的斜角
- java - 如何以更优雅和可扩展的方式编写这些条件语句
- php - 在 VS Code 中调试 PHP - “skipFiles”?