我有一個if包含 14 個可能資料框的陳述句的腳本
['result_14', 'result_13', 'result_12', 'result_11', 'result_10', 'result_9', 'result_8', 'result_7', 'result_6', 'result_5', 'result_4', 'result_3', 'result_2', 'result_1']
并非每次運行腳本時都會創建所有資料框。它取決于輔助輸入變數。我現在正在嘗試連接資料幀,但遇到了那些不存在的問題。
pd.concat(([result_14, result_13, result_12, result_11, result_10, result_9, result_8, result_7, result_6, result_5, result_4, result_3, result_2, result_1]), ignore_index=True)
NameError: name 'result_13' is not defined
我已經嘗試查找我的 python 記憶體中存在的所有 dfs 并決議結果,但這會創建一個串列而不是資料幀串列
alldfs = [var for var in dir() if isinstance(eval(var), pd.core.frame.DataFrame)]
SelectDFs = [s for s in alldfs if "result" in s]
SelectDFs
['result_14', 'result_15', 'result_12', 'result_11', 'result_10', 'result_9', 'result_8', 'result_7', 'result_6', 'result_5', 'result_4', 'result_3', 'result_2', 'result_1']
pd.concat(([SelectDFs]), ignore_index=True)
TypeError: cannot concatenate object of type '<class 'list'>'; only Series and DataFrame objs are valid
uj5u.com熱心網友回復:
你可以試試
%who_ls DataFrame
# %whos DataFrame
在你的情況下
l = %who_ls DataFrame
pd.concat([eval(dfn) for dfn in l if dfn.startswith('result')], ignore_index=True)
uj5u.com熱心網友回復:
您正在傳遞字串串列而不是 Dataframe 物件。
一旦你能夠獲得 DF Object,你就可以SelecteDFs不帶括號通過。
pd.concat(SelectDFs, ignore_index=True)
uj5u.com熱心網友回復:
您是否嘗試將它們轉換為 DF?我的意思是當你想連接它們時,它會引發一個錯誤,說你的資料需要是 dfs 而不是串列,所以你有沒有嘗試將你的串列轉換為 DFs?
此鏈接可能會對您有所幫助: 將串列轉換為 Pandas 資料框列
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/491346.html
下一篇:一起使用Loc和Iloc
