【发布时间】:2016-11-19 01:33:48
【问题描述】:
这是我的数据框(有更多的字母,长度约为 35.5k)以及 - 是其他相关字符串的东西)。所有变量都是字符串,['C1','C2'] 是 MultiIndex。
tmp
C1 C2 C3 C4 C5 Start End C8
A 1 - - - 12 14 -
A 2 - - - 1,4,7 3,6,10 -
A 3 - - - 16,19 17,21 -
A 4 - - - 22 24 -
我需要它变成这样(拆分包含逗号的每一行来维护其他所有内容):
C1 C2 C3 C4 C5 Start End C8 Appearance
A 1 - - - 12 14 - 1
A 2 - - - 1 3 - 1
A 2 - - - 4 6 - 2
A 2 - - - 7 10 - 3
A 3 - - - 16 17 - 1
A 3 - - - 19 21 - 2
A 4 - - - 22 24 - 1
我试过这个脚本 pandas: How do I split text in a column into multiple rows?
作为
s = tmp['Start'].str.split(',').apply(Series, 1).stack()
s.index = s.index.droplevel(-1)
s.name = 'Start
del tmp['Start']
final = tmp.join(s)
但是结果比它应该的要大得多!我得到了数千次重复,这只是试图拆分“开始”。我什至无法想象对 Start 和 End 都这样做(“Start”中的每个逗号都意味着“End”中的逗号。
Lengths:
tmp = 35568
s = 35676
final = 293408
【问题讨论】:
-
这不是预期的吗?如果您连续有 [1, 4, 7],则结果中将有另外两行。
标签: python string pandas split multi-index