Pandas 数据帧列赢得';t从整数字符串转换为实际整数

Pandas 数据帧列赢得';t从整数字符串转换为实际整数,pandas,numpy,Pandas,Numpy,我有一个微秒分辨率的日期字符串。我需要一个整数 import pandas as pd data = ["20181231235959383171", "20181231235959383172"] df = pd.DataFrame(data=data, columns=["A"]) df["A"].astype(np.int) 错误: File "pandas\_libs\lib.pyx", line 545, in pandas._libs.lib.astype_intsafe Over

我有一个微秒分辨率的日期字符串。我需要一个整数

import pandas as pd
data = ["20181231235959383171", "20181231235959383172"]
df = pd.DataFrame(data=data, columns=["A"])
df["A"].astype(np.int)
错误:

File "pandas\_libs\lib.pyx", line 545, in pandas._libs.lib.astype_intsafe
OverflowError: Python int too large to convert to C long
同样的问题,如果我尝试将其转换为标准Python
int
,您可以这样做:

将熊猫作为pd导入
数据=[“20181231235959383171”、“20181231235959383172”]
df=pd.DataFrame(data=data,columns=[“A”])
before=df.A[0]
df.A=[df.A.tolist()中x的int(x)]
after=df.A[0]
前后
输出
数据已转换为整数。显示:
(之前、之后)

在你上一个问题中:

import pandas as pd
data = ["20181231235959383171", "20181231235959383172"]
df = pd.DataFrame(data=data, columns=["A"])

# slow but big enough
df["A_as_python_int"] = df["A"].apply(int)

# fast but has to be split to two integers
df["A_seconds"] = (df["A_as_python_int"] // 1000000).astype(np.int)
df["A_fractions"] = (df["A_as_python_int"] % 1000000).astype(np.int)

如果这是datetime convert to datetime,而不是将其保存在intno中,我会将其作为一个较长的字符串接收,我已将其缩减为以下内容:转换为int的目的是什么?使用一些分隔符,您可以将此字符串转换为
np.datetime64数组:
np.array(“2018-12-31T23:59:59.383171”:datetime64[us]”)`它也可以是一个对象数据类型数组,包含Python
int
(与numpy
int64
)相反:
np.array([int(i)表示数据中的i],object)
import pandas as pd
data = ["20181231235959383171", "20181231235959383172"]
df = pd.DataFrame(data=data, columns=["A"])

# slow but big enough
df["A_as_python_int"] = df["A"].apply(int)

# fast but has to be split to two integers
df["A_seconds"] = (df["A_as_python_int"] // 1000000).astype(np.int)
df["A_fractions"] = (df["A_as_python_int"] % 1000000).astype(np.int)