これは私のデータフレームです(より多くの文字と長さ〜35.5k)。すべての変数は文字列で、['C1'、 'C2']はマルチインデックスです。2列(Python、Pandas)のテキストに従って行を分割します。
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 -
は、私はそれが(他のすべてを維持カンマが含まれているすべての行分割)本になる必要があります:私は
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)
としてこのスクリプト pandas: How do I split text in a column into multiple rows?
を試してみました
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
しかし、結果はそれよりもはるかに大きいです!何千ものリピートがあり、これは単に「開始」を分割しようとしているだけです。私も「スタート」内のすべてのコンマが「終了」にカンマを意味します(開始と終了の両方のためにそうしようと想像することはできません。
Lengths:
tmp = 35568
s = 35676
final = 293408
これは期待されていませんか? [1、4、7]が連続している場合は、結果に2つの行が追加されます。 – ayhan