Как использовать только несколько столбцов в фрейме данных pandas

#python #pandas

#python #pandas

Вопрос:

У меня есть фрейм данных из 39 столбцов. Мне нужно привести тип к int столбцов от 5(name= 1980) до 39 (2013). как мне это сделать?

d[1980: 2013].astype(int) фрейм данных

Ответ №1:

df.loc[:,1980:2013].astype(int)

Комментарии:

1. Разве 1980: 2013 не должен быть в кавычках??

2. независимо от имени столбца решение будет df.iloc[:, 5:].astype(int)

3. @hacker315 потому что имя столбца — int

4. @Seawise я думаю, что это может вызвать исключение «индекс вне диапазона»… потому что он будет принимать заданное число в качестве позиции индекса

5. import pandas as pd n import numpy as np n df = pd.DataFrame(np.random.rand(6,4)*100) n print(df) n print(df.loc[:,1:2].astype(int)) n

Ответ №2:

Попробуйте этот код:

 for i in range(5,40):
    d.iloc[i,:]=map(int,d.iloc[i:])
  

Комментарии:

1. Я думаю, это будет медленно… Попробуйте использовать %timeit

Ответ №3:

Вы можете решить эту проблему, используя вложенный цикл for, который начинается с диапазона индексов.

 for x in df.columns[5:40]:  <--pulls the columns you want to type cast
    for y in df[x]:  <-- pulls the array from said column
        y = int(y)   <--type casts the entire arrary

...repeats for each column inside your range.