#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
nimport numpy as np
ndf = pd.DataFrame(np.random.rand(6,4)*100)
nprint(df)
nprint(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.