gpt4 book ai didi

python - 如何在没有样板代码的情况下将 pandas 系列的内容分配给 sqlAlchemy 类实例?

转载 作者:行者123 更新时间:2023-12-01 01:15:05 25 4
gpt4 key购买 nike

对于下面的示例,我必须将 pandas 系列的每个字段分配给类实例。

有什么方法可以一步完成此操作(例如:abc = Abc(series)

import pandas as pd
from sqlalchemy import Column, Integer, String, Boolean
from sqlalchemy.dialects.mysql import DATETIME
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

class Abc(Base):
__tablename__ = 'abc'

runId = Column(Integer, primary_key=True)
runComment = Column(String(255))
dateTimeProcessed = Column(DATETIME(fsp=6))
status = Column(Boolean, nullable=False)

df = pd.DataFrame({"runId": [1, 2, 3], "runComment": [4, 5, 6],"dateTimeProcessed": [1, 2, 3], "status": [1, 2, 3], })

series = df.iloc[0]

abc = Abc(runId=series.runId,
runComment=series.runComment,
dateTimeProcessed=series.dateTimeProcessed,
status=series.status)

最佳答案

pandas.Series 对象是映射,您可以使用关键字参数解包,即“double-splat”:

In [1]: import pandas as pd

In [2]: df = pd.DataFrame({"runId": [1, 2, 3], "runComment": [4, 5, 6],"dateTimeProcessed": [1, 2, 3], "status": [1, 2, 3], })

In [3]: series = df.iloc[0]

In [4]: class Abc:
...: def __init__(self, runId, runComment, dateTimeProcessed, status):
...: self.runId = runId
...: self.runComment = runComment
...: self.dateTimeProcessed = dateTimeProcessed
...: self.status = status
...:

In [5]: a = Abc(**series)

In [6]: a.runId
Out[6]: 1

In [7]: a.dateTimeProcessed
Out[7]: 1

In [8]: a.runComment
Out[8]: 4

关于python - 如何在没有样板代码的情况下将 pandas 系列的内容分配给 sqlAlchemy 类实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54428970/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com