pandas - 数据框列不会从整数字符串转换为实际整数
问题描述
我有一个微秒分辨率的日期字符串。我需要它作为一个整数。
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
解决方案
根据我在上一个问题中的回答:
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)
推荐阅读
- vue.js - stretch embedded vimeo in vue.js fails
- java - 在 Android 中跨不同模块访问代码?
- java - 如何控制 JSeparator 的大小?
- html - How can line breaks be added to a data:text/plain URI?
- jsdoc - 在函数中的参数上使用 jsdoc 内联
- javascript - 如何在表格单元格之间添加空格?
- elasticsearch - Elastic Canvas 日期格式
- sql - 通过连接范围内的两个表来评定总和
- c - Luhn 算法的 for 循环中的未知值
- reactjs - 如何使用 reactjs 在按钮单击时正确显示加载事件