как преобразовать object в int64 Python
как преобразовать столбец "data" из object в int64, вот данные df
import numpy as np
import pandas as pd
df = pd.read_excel("df.xlsx")
# пробую так, но выдает ошибку.
df["data"].values.astype(np.int64)
Traceback (most recent call last):
File "<ipython-input-143-763b952fb481>", line 1, in <module>
df["data"].values.astype(np.int64)
ValueError: invalid literal for int() with base 10: '1 246'
Ответы (3 шт):
Автор решения: MaxU
→ Ссылка
Воспользуйтесь методом pd.to_numeric():
df["new"] = pd.to_numeric(df["data"].str.replace(r"[^\d\-]", ""), errors="coerce")
Автор решения: VEL
→ Ссылка
Спасибо "MaxU" за предоставленный метод, в сымитированной задачи в этой он сработал, но когда перенес его(код) на рабочею задачу, то выскочила ошибка:
(AttributeError: Can only use .str accessor with string values!)
Помогло решить эту ошибку не большое дополнение к коду, вот решение которое у меня сработало.
df["new"] = pd.to_numeric(df["data"].astype(str).str.replace(r"[^\d\-]", ""), errors="coerce")
Автор решения: FeR
→ Ссылка
def make_data(data):
if data == '...'
return 1
elif data == '...'
return 2
return 3
Как по мне лучше воспользоваться таким способом.