[英]Syntax error in Python for-if list comprehension loop
將前導和數據省略到以下內容,因為它看起來像列表理解的編寫方式錯誤。 它的目的是根據它們是二維(索引和列)還是一維(僅索引和列)或一維來循環遍歷pandas DataFrame
和Series
以及 label 的列表l
。 為什么會出現錯誤(即使關閉換行符)?
[pd.DataFrame(A, index=labels, columns=labels) for A in l
if type(A) is pd.DataFrame else pd.Series(A, index=labels)]
結果是
if type(A) is pd.DataFrame else pd.Series(A, index=tickers)]
^
SyntaxError: invalid syntax
您需要將for A in l
移動到語句的末尾。
[pd.DataFrame(A, index=labels, columns=labels) if type(A) is pd.DataFrame else pd.Series(A, index=labels) for A in l]
請參閱: 是否可以在列表理解中使用“else”?
是你的問題不是由於是。 也許嘗試使用 isinstance(type(A), pd.DataFrame) 另一點是您的列表理解的順序,如果認為它應該是
[f(x) if condition else g(x) for x in sequence]
所以你可以試試
[pd.DataFrame(A, index=labels, columns=labels) if isinstance(type(A) , pd.DataFrame) else pd.Series(A, index=labels) for A in l ]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.