Делая это:
blockquote>df1 = df1["Overall Value"].str.split(...)
вы не обновляете существующий фрейм данных, но создаете новый и указываете имя
df1
на это.
df1
теперь больше не относится к исходному фрейму данных, поэтомуdf[2]
(иdf[3]
) не существует, о чемKeyError: 2
говорит вам.Вместо этого вы должны использовать другое имя для временного фрейма данных, а затем использовать его для обновления столбцов в исходном.
Кроме того, вместо того, чтобы сначала создавать два новых столбца, чтобы сразу отбросить один из них, вы должны просто использовать тот, который вам действительно нужен.
Для оставшихся столбцов, которые уже существуют, вы должны использовать индексы 1 и 2 вместо 2 и 3, но, поскольку они уже содержатся в
df1
, нет необходимости «вставлять» их заново.Примерно так:
ids_ips = df1["Overall Value"].str.split(" ", n = 1, expand = True) df1["ID"] = ids_ips[0] # df1["IP2"] = ids_ips[1] <-- don't do this df1["Time"] = df1[1] # this is probably not necessary, too df1["IP"] = df1[2] # neither is this
На статических страницах работает неплохо. Если вы разработали пару статических html-страниц с использованием современных браузеров и стандартов и хотите, чтобы они корректно отображались в IE6 и 7, этот скрипт вам поможет.
Но, и это большое, но, если вы добавите немного javascript в рецепт, этот метод покажет свои слабые места. Все, что будет добавлено позже в DOM или какое-либо событие, запущенное впоследствии, НЕ будет затронуто этим скриптом.
Вот и все. Моя однострочная рекомендация - если у вас простые и легкие страницы, используйте его. в противном случае попробуйте решить свои проблемы, глядя на корни!
I think the best answer is: try it on your website and see if it works for your particular code. If it works, and doesn't impact the speed, great, you're done. If it doesn't work, then you're going to have to spend the time to make your site work in IE.