我有一个带有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发布于 2022-06-14 13:28:13
你可以试试
%who_ls DataFrame
# %whos DataFrame在你的情况下
l = %who_ls DataFrame
pd.concat([eval(dfn) for dfn in l if dfn.startswith('result')], ignore_index=True)发布于 2022-06-14 13:24:22
您正在传递字符串列表,而不是Dataframe对象。
一旦您能够获得DF对象,就可以不带括号地传递SelecteDFs。
pd.concat(SelectDFs, ignore_index=True)发布于 2022-06-14 13:25:36
你试过把它们转换成DFs吗?我的意思是,当您想要连接它们时,会产生一个错误,即您的数据需要比列表更简单,那么您是否尝试过将您的列表转换为DFs呢?
此链接可能有助于您:Convert List to Pandas Dataframe Column
https://stackoverflow.com/questions/72617713
复制相似问题