2016-12-28 3 views
0

У меня есть Dataframe со столбцом Country, а также столбцами года (с 1960 по 2015 год). Я хочу создать новый Dataframe, содержащий только страну и столбцы за последние десять лет.Ошибка синтаксиса при создании Dataframe

Мне удалось получить последние десять лет в Dataframe, но не в странах, которым они соответствуют.

df = df[['Country', '%d' % i for i in range(2006, 2016)]] 

Из приведенного выше кода я возвращаю синтаксическую ошибку. Что я делаю не так?

ответ

2

Синтаксис for в python должен быть обернут либо в скобках (создание генератора), либо в скобках (создание списка). В этом случае вам нужен список столбцов. Так обернуть цикл в паре кронштейна, чтобы сделать его список столбцов, а затем объединить его с Country с +:

df = df[['Country'] + ['%d' % i for i in range(2006, 2016)]] 

Или, как @DeepSpace прокомментировал использовать str метод для преобразования целого числа в строку:

df = df[['Country'] + [str(i) for i in range(2006, 2016)]] 
+1

Да, но ''% d '% i' здесь действительно не нужно. 'str (i)' будет достаточно. – DeepSpace

+0

Спасибо за помощь и предложение. – user7350180

Смежные вопросы