【发布时间】:2023-03-05 01:06:01
【问题描述】:
我正在尝试将表中的数据提取到数据框中,但这样做时,我只显示“无”,而不是我在表中输入的原始值/数据的数量。代码如下:
conditions = [
(ontime['DepDelay'] <= 0),
(ontime['DepDelay'] >= 0)
]
values = ['2', '1']
ontime['DelayStatus'] = np.select(conditions, values)
pd.DataFrame(ontime)
但是,在“准时”从表中提取数据时,它显示为“无”而不是值“1”或“2”
q4 = c.execute('''
SELECT ontime.Origin AS Origin,
ontime.Dest AS Dest,
ontime.DayOfMonth AS DayOfMonth,
ontime.Month AS Month,
ontime.Year AS Year,
ontime.ArrDelay AS ArrivalDelay,
ontime.DepDelay AS DepDelay,
ontime.DelayStatus AS DelayStatus
FROM ontime
WHERE ontime.Cancelled='0' AND
ontime.ArrDelay > '0' AND
ontime.ArrDelay != 'Na' AND
ontime.DepDelay != 'Na'
GROUP BY Origin, Dest, DayOfMonth,Month,Year
ORDER BY Year ASC, Month ASC, DayOfMonth ASC
''').fetchall()
q4 = pd.DataFrame (q4, columns['OriginCountry','Destination','DayOfMonthArrive','MonthArrive','YearArrive','ArrivalDelay','DepDelay','DelayStatus'])
pd.DataFrame(q4)
虽然不完全确定我什至将类从字符串更改为整数,但我仍然得到值“无”
【问题讨论】:
-
第一个代码 sn-p 中的
np和第二个代码中的c是什么?返回值中的None表示数据库在该列中有NULL值。我会首先使用 pgadmin 或 dbeaver 等数据库客户端来检查数据库表,看看它们是否包含您认为的数据。 -
对。您的第一个 sn-p 显示您创建
DelayStatus作为 DataFrame 中的计算字段。这不会影响数据库表。您是否打算更改数据库本身? -
@Code-Apprentice 它们几乎是 numpy 和一些数据库游标(可能来自 SQLAlchemy),尽管它们仍应指出哪些正在使用!
-
@Code-Apprentice 是的,正如 ti7 所提到的,谢谢!我将研究一个数据库客户端
-
@Tim Robert,是的,这就是我最初打算做的,即在数据库中添加一个新列,但是我意识到上面的代码可能只适用于 df但不在数据库中,谢谢指出