首页 > 解决方案 > 熊猫同时将单行拆分为多列中的多行

问题描述

我想将熊猫数据框中的每一行拆分为多行。需要将值放入's_code''s_percent'同时拆分。

df

  id    s_code            s_percent   s_type   s_name   player   total-value
XI-GB-1 12220;14020;31110 35;33;32    2        yaba     p1       120398
XI-GB-2 23630;41010;23110 36;30;34    4        daba     p4       123453
XI-GB-3 15120;12511       75;25       7        doo      p3       78542
XI-GB-4 23110;23510;15110 10;55;35    9        hakuna   p2       97234
XI-GB-5 23210;23230       40;60       1        matata   p6       10000

使用Split (explode) pandas dataframe string entry 中的一些答案来分隔行,我能够将一列下的单行(即 s_code 或 s_percent)拆分为多行,但这不是我想要的我想要的行被拆分跨越s_codes_percent同时。

我尝试分别拆分它们(先 bys_code然后 by s_percent)然后合并它们,但这会创建多个不必要的映射。我想要的映射应该是这样的,在分割时';',第一个值s_code应该只对应于下的第一个值s_percent,类似地,第二个值对应于s_code第二个值s_percent,依此类推。

我想要的期望输出应该是这样的:

  id    s_code s_percent  s_type   s_name   player   total-value
XI-GB-1 12220  35         2        yaba     p1       120398
XI-GB-1 14020  33         2        yaba     p1       120398
XI-GB-1 31110  32         2        yaba     p1       120398
XI-GB-2 23630  36         4        daba     p4       123453
XI-GB-2 41010  30         4        daba     p4       123453
XI-GB-2 23110  34         4        daba     p4       123453
XI-GB-3 15120  75         7        doo      p3       78542
XI-GB-3 12511  25         7        doo      p3       78542
XI-GB-4 23110  10         9        hakuna   p2       97234
XI-GB-4 23510  55         9        hakuna   p2       97234
XI-GB-4 15110  35         9        hakuna   p2       97234
XI-GB-5 23210  40         1        matata   p6       10000
XI-GB-5 23230  60         1        matata   p6       10000

标签: pythonpandasdataframe

解决方案


推荐阅读