我正在嘗試將以下代碼撰寫為串列理解:
is_weekend = list()
for i in df['date']:
if i.weekday() > 4:
is_weekend.append(1)
else:
is_weekend.append(0)
我已經試過了
is_weekend = [i == 1 for i in df['date'] if i.weekday() > 4 else i == 0]
但它會引發無效的語法錯誤。
你能幫忙嗎?
uj5u.com熱心網友回復:
這是正確的方法:
is_weekend = [1 if i.weekday() > 4 else 0 for i in df['date']]
uj5u.com熱心網友回復:
這會將布林值轉換為 1 或 0,但它是迭代的
is_weekend = [int(i.weekday() > 4) for i in df['date']]
更好的方法是在列上使用帶有apply的 lambda,date并使用tolist方法將結果系列轉換為串列。
is_weekend = df['date'].apply(lambda i: 1 if i.weekday() > 4 else 0).tolist()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/409563.html
標籤:
