DolphinDB Python API:__DolphinDB_Type__ 会触发Pandas的用户警告
我正在使用DolphinDB的 Python API上传一个pandas DataFrame,并希望控制DolphinDB的列类型,例如把 trade_time 设置为 DATETIME,而不是默认的 STRING。
下面是我正在执行的步骤:
import pandas as pd
import dolphindb as ddb
s = ddb.session()
s.connect("localhost", 8848, "admin", "123456")
df = pd.DataFrame({
'trade_time': ['2026-05-25 10:00:00', '2026-05-25 10:01:00'],
'price': [100.5, 101.2],
'volume': [1000, 2000]
})
df.__DolphinDB_Type__ = {
'trade_time': "DATETIME",
}
s.upload({"df": df})
这将产生:
用户警告:Pandas不允许通过新属性名来创建列 - 参见 https://pandas.pydata.org/pandas-docs/stable/indexing.html#attribute-access
数据似乎已正确上传,但警告一直出现。是否有正式的方法在上传 DataFrame 时为每一列指定类型?还是 __DolphinDB_Type__ 仍然是正确的做法,我应该只是忽略这个警告?
解决方案
那只是一个Pandas的警告,并不是DolphinDB的错误。
__DolphinDB_Type__ 是DolphinDB专用的属性,当你在 DataFrame 上附加随机属性时,Pandas就会抱怨:
df.__DolphinDB_Type__ = {"trade_time": "DATETIME"}
如果该列实际上是以 DATETIME 的形式上传的,那么一切都按预期工作。这个警告只是Pandas对元数据附加方式有点挑剔而已。
如果DolphinDB的文档仍然推荐 __DolphinDB_Type__,我会继续使用它,而不是压制警告、幻想有不存在的神奇替代方案。
值得尝试的一件事是先把该列转换为Pandas的 datetime:
df["trade_time"] = pd.to_datetime(df["trade_time"])
然后DolphinDB可能在不需要额外提示的情况下推断出正确的类型。
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。