python - 如何将一行两列数据框转换为多行两列数据框
问题描述
我是 Python 新手。
我有一个包含两列的数据框。一个是 ID 列,另一个是 ID 相关的年份和计数信息。
我想将此格式转换为具有相同 ID 的多行。
当前数据框如下所示:
ID information
1 2014:Total:0, 2015:Total:1, 2016:Total:2
2 2017:Total:3, 2018:Total:1, 2019:Total:2
我希望转换后的数据框应该是这样的:
ID Year Value
1 2014 0
1 2015 1
1 2016 2
2 2017 3
2 2018 1
2 2019 2
我尝试使用 pandas 数据框的 str.split 方法,但没有运气。
任何建议,将不胜感激。
解决方案
让我们使用explode
:-)(熊猫 0.25.0 中的新功能)
df.information=df.information.str.split(', ')
Yourdf=df[['ID']].join(df.information.explode().str.split(':',expand=True).drop(1,axis=1))
Yourdf
ID 0 2
0 1 2014 0
0 1 2015 1
0 1 2016 2
1 2 2017 3
1 2 2018 1
1 2 2019 2
推荐阅读
- vb.net - (InvalidCastException):指定的强制转换无效
- c# - C#,如果另一个方法返回 true,则启动方法
- forms - I have this code, when submited the form dont refresh, someone know how refresh after submit on october cms?
- python - SWIG 和 Boost::variant
- bash - 使用 find 查找与带有可选组的正则表达式匹配的文件夹
- ios - 网络请求延迟
- c - 反向打印的数组元素
- prestashop - Prestashop PHP 导入自定义值功能
- php - 如果为空,则重定向用户以填充属性
- powershell - 在 Write-Host 中间运行命令