熊猫数据框未附加

Posted

技术标签:

【中文标题】熊猫数据框未附加【英文标题】:Pandas Data Frame not Appending 【发布时间】:2020-03-19 10:58:38 【问题描述】:

我正在尝试通过 for 循环附加数据帧。

代码

def redshift_to_pandas(sql_query,**kwargs):
# pass a sql query and return a pandas dataframe
 cur.execute(sql_query)
 columns_list = [desc[0] for desc in cur.description]
 data = pd.DataFrame(cur.fetchall(),columns=columns_list)
 return data

输入 - all_schema = [('backup')]

循环-

try:
 if len(all_schema) == 0:
  raise inputError("The Input has no schema selected. EXITING")
 else:
  modified_schemadf=pd.DataFrame(columns=['columns_name','status'])
  
  for i in range(len(all_schema)):
    #print (redshift_to_pandas("select '"+all_schema[i]+"' as columns_name,(select exists ( select distinct table_schema from information_schema.tables where table_schema like '%"+all_schema[i]+"')) as status",mechanism='append'))
    modified_schemadf.append(redshift_to_pandas("select '"+all_schema[i]+"' as columns_name,(select exists ( select distinct table_schema from information_schema.tables where table_schema like '%"+all_schema[i]+"')) as status",mechanism='append'))
    print (modified_schemadf)

except inputError as e:
   print(e.message)
   logger.error("UNEXPECTED INPUT FOUND, Please check the I/P List . EXITING")
  
print (modified_schemadf)

我觉得问题很明显,但我似乎没有找到问题。

这里是 o/p -

所以第一次打印(注释掉)确实返回了正确的结果。 接下来的步骤,即将结果附加到声明的数据框(名称 - modified_schemadf)是问题区域。当我打印它的值时,它仍然会抛出一个空的数据框。由于某种原因,附加没有发生。

当代码进入 else 时,即输入合法时,会创建一个名为 modified_schemadf 的空数据框。对于这个空数据框,追加的数量与输入的数量一样多。

提前致谢。

请不要介意缩进,复制可能会影响它们。

【问题讨论】:

【参考方案1】:

问题不只是您没有分配附加的数据框吗?尝试更改此行

modified_schemadf.append(redshift_to_pandas("select '"+all_schema[i]+"' as columns_name,(select exists ( select distinct table_schema from information_schema.tables where table_schema like '%"+all_schema[i]+"')) as status",mechanism='append'))

到这一行

modified_schemadf = modified_schemadf.append(redshift_to_pandas("select '"+all_schema[i]+"' as columns_name,(select exists ( select distinct table_schema from information_schema.tables where table_schema like '%"+all_schema[i]+"')) as status",mechanism='append'))

【讨论】:

以上是关于熊猫数据框未附加的主要内容,如果未能解决你的问题,请参考以下文章

使用熊猫将数据框附加到excel

附加两个多索引熊猫数据框

如何将字典附加到熊猫数据框?

Python:将字典附加到熊猫数据框行

附加到熊猫数据框中的列表

循环遍历层后附加熊猫数据帧