我正在嘗試將表中的資訊提取到資料框中,接下來我想要的是使用基于我檢索到的資料的 if-else 陳述句并將其插入到現有資料框中的新列中。
q1 = c.execute('''
SELECT DISTINCT ontime.DayOfWeek,
ontime.DayOfMonth AS DayOfMonthArrive,
ontime.Month AS MonthArrive,
ontime.Year AS YearArrive,
ontime.DepTime AS DepTime,
AVG(ontime.DepDelay) AS avg_delay
FROM ontime
WHERE ontime.Cancelled = 0 AND
ontime.Diverted = 0 AND
ontime.DepDelay <= 0 AND
ArrDelay <= 0
GROUP BY DepTime
ORDER BY avg_delay
''').fetchall()
^ 我如何通過資料提取
conditions = [
(q1['DepTime'] >= 500) & (q1['DepTime'] <= 1159),
(q1['DepTime'] >= 1200) & (q1['DepTime'] <= 1800),
(q1['DepTime'] >= 1801) & (q1['DepTime'] <= 2359),
(q1['DepTime'] >= 0) & (q1['DepTime'] <=459)
]
values = ['Morning', 'Afternoon', 'Evening', 'Midnight']
q1['TimeOfTheDay'] = np.select(conditions, values)
但是,我目前正面臨這個錯誤。我已經嘗試了很多步驟,但它只是不斷向我顯示相同的錯誤。
TypeError: list indices must be integers or slices, not str
嘗試1:
q1['DepTime'] = pd.to_numeric(q1['DepTime'], errors='coerce')
嘗試2:
q1['DepTime'] = q1['DepTime'].astype('int')
如果有人可以幫助并指出我犯的錯誤,是否有可能?提前致謝 :)
uj5u.com熱心網友回復:
似乎您的變數 q1 是一個串列,而不是一個資料框(我推斷這就是您想要的哈哈),這就是您收到型別錯誤的原因。
uj5u.com熱心網友回復:
通常,當我想從 SQLite3 查詢訪問資料并將其視為字典時,我會這樣做:
connection.row_factory = sqlite3.Row
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/412599.html
標籤:
