Более простое решение:
pd.DataFrame(df2.teams.tolist(), columns=['team1', 'team2'])
Выход,
team1 team2
-------------
0 SF NYG
1 SF NYG
2 SF NYG
3 SF NYG
4 SF NYG
5 SF NYG
6 SF NYG
7 SF NYG
Если вы хотите разбить столбец с разделителями, а не на списки, вы также можете сделать следующее:
pd.DataFrame(df.teams.str.split('<delim>', expand=True).values,
columns=['team1', 'team2'])
Я просто собираюсь добавлять две ссылки, которые объясняют байт-код Java вполне прилично и часть различной оптимизации JVM во время времени выполнения.
Оптимизация - то, что делает JVMs жизнеспособный как среды для длинных запущенных приложений, можно держать пари, что SUN, IBM и друзья прилагают все усилия, чтобы гарантировать, что они могут оптимизировать байт-код и скомпилированный код JIT в эффективном способ как возможные.
Так как это сказан, если Вы будете думать, что можно предварительно оптимизировать байт-код затем, то он, вероятно, не причинит много вреда.
Стоит знать, однако, что JVMs может склоняться к выполнению лучше (и не катастрофический отказ) при представлении только с видом байт-кода компилятор Java имеет тенденцию создавать. Это не неизвестно, чтобы оптимизации были пропущены или даже чтобы JVM отказала, когда перестановки байт-кода происходят, которые корректны, но в отличие от того, что было бы произведено javac. Надо надеяться, такая вещь находится больше в прошлом теперь, но может быть чем-то для знания.
Obfuscators, такой как ProGuard выполнит много статических оптимизаций на Вашем байт-коде для Вас.
Оптимизация байт-кода является, вероятно, оксюмороном в большинстве случаев
Я не думаю это правда. Оптимизация как спускоподъемные инварианты цикла и константы распространения никогда не может причинять боль, даже если JVM достаточно умна, чтобы сделать их самостоятельно, простым достоинством создания кода действительно меньше работают.
Оптимизация байт-кода является, вероятно, оксюмороном в большинстве случаев. Если Вы не управляете VM, Вы понятия не имеете, что он делает для ускорения выполнения кода, если что-либо. Компилятор должен был бы знать детали VM для генерации оптимизированного кода.
Компилятор HotSpot оптимизирует Ваш код во времени выполнения лучше, чем возможно во время компиляции - это имеет больше информации для работы с, в конце концов. Единственное время необходимо оптимизировать байт-код вместо просто алгоритма, - при предназначении для мобильных устройств, таких как Blackberry, где JVM для той платформы не достаточно мощна для оптимизации кода во времени выполнения и просто выполняет байт-код.
Примечание к Aseraphim:
Может также быть полезно оптимизировать байт-код для невстраиваемых приложений в некоторых ограниченных случаях:
При поставке кода по проводу, например, для приложений WebStart, для уменьшения поставляемого компонента/размера кэша и потому что Вы не обязательно знаете поддержку/скорость клиента.
Для кода, который Вы знаете, производительность, очень важная и используемая при запуске, прежде чем (скажут), что HotSpot имел время для сбора любой статистики.
Снова, преобразования, которые выполняет хороший optimiser/obfuscator, могут быть очень полезными.