Я хочу, чтобы сортировать фреймворк данных со многими столбцами по определенному столбцу, но сначала мне нужно изменить тип от object
до int
. Как изменить тип данных этого конкретного столбца при сохранении исходных позиций столбца?Изменить тип данных для конкретного столбца в dataframe pandas
2
A
ответ
2
Вы можете использовать reindex
по отсортированным колонкам sort_values
, отлитый в int
по astype
:
df = pd.DataFrame({'A':[1,2,3],
'B':[4,5,6],
'colname':['7','3','9'],
'D':[1,3,5],
'E':[5,3,6],
'F':[7,4,3]})
print (df)
A B D E F colname
0 1 4 1 5 7 7
1 2 5 3 3 4 3
2 3 6 5 6 3 9
print (df.colname.astype(int).sort_values())
1 3
0 7
2 9
Name: colname, dtype: int32
print (df.reindex(df.colname.astype(int).sort_values().index))
A B D E F colname
1 2 5 3 3 4 3
0 1 4 1 5 7 7
2 3 6 5 6 3 9
print (df.reindex(df.colname.astype(int).sort_values().index).reset_index(drop=True))
A B D E F colname
0 2 5 3 3 4 3
1 1 4 1 5 7 7
2 3 6 5 6 3 9
Если первое решение не работает, потому что None
или плохие данные используют to_numeric
:
df = pd.DataFrame({'A':[1,2,3],
'B':[4,5,6],
'colname':['7','3','None'],
'D':[1,3,5],
'E':[5,3,6],
'F':[7,4,3]})
print (df)
A B D E F colname
0 1 4 1 5 7 7
1 2 5 3 3 4 3
2 3 6 5 6 3 None
print (pd.to_numeric(df.colname, errors='coerce').sort_values())
1 3.0
0 7.0
2 NaN
Name: colname, dtype: float64
2
df['colname'] = df['colname'].astype(int)
Работы при изменении от float
значений до int
по крайней мере.
Смежные вопросы
- 1. изменить значения столбца (и тип) на pandas Dataframe
- 2. Pandas: не удалось изменить тип данных столбца
- 3. Pandas: изменение имени конкретного столбца в dataframe с многоуровневыми столбцами
- 4. pandas DataFrame изменить на несколько значений столбца
- 5. Как указать тип входных данных для Pandas DataFrame
- 6. Словарь столбца в pandas dataframe
- 7. изменить тип данных столбца
- 8. Изменение типа столбца в Pandas DataFrame для int64
- 9. pandas dataframe преобразовать тип столбца в строку или категориально
- 10. Сумма столбца в Pandas DataFrame
- 11. Заполнение столбца dataframe в pandas с помощью другого столбца Dataframe
- 12. Сложность Создание столбца Pandas Dataframe
- 13. Индексирование нового столбца для boxplot pandas dataframe
- 14. Условное создание столбца Dataframe Pandas
- 15. Определить тип столбца как «список» в Pandas
- 16. Изменить стили конкретного столбца
- 17. Pandas DataFrame- Значение индекса для столбца
- 18. Как изменить заполненный текст столбца Pandas
- 19. Преобразование типа данных столбца Pandas
- 20. Быстрое преобразование столбца JSON в Pandas dataframe
- 21. Как получить тип данных конкретного столбца в базе данных H2
- 22. Как удалить символ% для конкретного столбца в dataframeusing python pandas?
- 23. Добавление столбца в dataframe в Pandas
- 24. Сохранять тип данных столбца Dataframe после внешнего слияния
- 25. Как изменить тип данных столбца в рельсах?
- 26. Изменить тип данных столбца в piglatin
- 27. Как изменить тип данных столбца в sybaseIQ
- 28. Изменить тип столбца базы данных в десятичной
- 29. Определение значения столбца в pandas dataframe
- 30. Как изменить тип данных столбца в DataTable
ли posiible использования 'df ['colname'] = df ['colname']. astype (int)'? – jezrael
Вы пытались найти это: http://stackoverflow.com/search?tab=votes&q=pandas%20convert%20to%20int есть много связанных вопросов. Это также сильно зависит от текущего состава ваших данных, например, если у вас отсутствуют значения, то вы не можете преобразовать в int, поскольку 'NaN' не может быть представлен' int' – EdChum
Или вам нужно преобразовать только в 'int' для сортировки, а затем конвертировать обратно в 'string' (' object')? – jezrael