gpt4 book ai didi

python - divmod() : 'str' and 'int' when formatting a SQL result 不支持的操作数类型

转载 作者:行者123 更新时间:2023-12-05 06:48:08 24 4
gpt4 key购买 nike

我想格式化 SQL 查询的结果:

原始数据:

<表类="s-表"><头>名字天<正文>爱丽丝60鲍勃52迈克266卢卡斯27

预期的格式化数据:

<表类="s-表"><头>名字天<正文>爱丽丝2鲍勃1 22/30迈克8 26/30卢卡斯27/30

使用下面的代码我得到:unsupported operand type(s) for divmod():

def get_days(days):
quotient, modulus = divmod(days, 30)
if modulus:
return "{} {}/30".format(quotient, modulus)
else:
return str(int(quotient))

def get_baby_detail(id_):
data = db.session.query(Baby.name, Baby.days).filter(Baby.id == id_).first()
got_days = get_days(data.days)
return dict(data, days=got_days)

最佳答案

创建两个系列,分别命名为monthsday_in_month。然后,根据您的条件对它们进行格式化。

months = df.days // 30

day_in_month = df.days - (months * 30)

conditions = [
(months == 0) & (day_in_month == 0),
(months == 0) & (day_in_month != 0),
(months != 0) & (day_in_month == 0)
]

values = [np.nan, day_in_month.astype(str).add('/30'), months]

default = months.astype(str).add(' ').add(day_in_month.astype(str)).add('/30')

df['days_formatted'] = np.select(conditions, values, default)

输出

    name  days days_formatted
0 Alice 60 2
1 Bob 52 1 22/30
2 Mike 266 8 26/30
3 Lucas 27 27/30

关于python - divmod() : 'str' and 'int' when formatting a SQL result 不支持的操作数类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66899652/

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