首页 > 解决方案 > 如何将一行两列数据框转换为多行两列数据框

问题描述

我是 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 方法,但没有运气。

任何建议,将不胜感激。

标签: pythonpandasdataframe

解决方案


让我们使用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

推荐阅读