python - 对象没有属性“索引”
问题描述
import pandas as pd
from pandasql import sqldf
class ABC:
def __init__(self):
self.details = {'Name' : ['Ankit', 'Aishwarya', 'Shaurya', 'Shivangi'],'Age' : [23, 21, 22, 21]}
self.df = pd.DataFrame(self.details)
objAbc=ABC()
for i,rowObject in sqldf("select distinct Name from objAbc.df").iterrows():
print(rowObject.Name)
AttributeError Traceback (most recent call last)
<ipython-input-21-aaba2874542d> in <module>
8 objAbc=ABC()
9
---> 10 for i,rowObject in sqldf("select distinct Name from objAbc.df").iterrows():
11 print(rowObject.Name)
12
~\anaconda3\lib\site-packages\pandasql\sqldf.py in sqldf(query, env, db_uri)
154 >>> sqldf("select avg(x) from df;", locals())
155 """
--> 156 return PandaSQL(db_uri)(query, env)
~\anaconda3\lib\site-packages\pandasql\sqldf.py in __call__(self, query, env)
56 continue
57 self.loaded_tables.add(table_name)
---> 58 write_table(env[table_name], table_name, conn)
59
60 try:
~\anaconda3\lib\site-packages\pandasql\sqldf.py in write_table(df, tablename, conn)
119 message='The provided table name \'%s\' is not found exactly as such in the database' % tablename)
120 to_sql(df, name=tablename, con=conn,
--> 121 index=not any(name is None for name in df.index.names)) # load index into db if all levels are named
122
123
AttributeError: 'ABC' object has no attribute 'index'
** 我想使用 pandasql 遍历 ABC 类中定义的数据框。sqldf 函数但出现错误。
'ABC' 对象没有属性 'index'
PS:根据要求,必须使用 pandasql 的 sqldf。
请帮忙 **
解决方案
我发现的唯一解决方案是子类化数据框:
import() pandas as pd
from pandasql import sqldf
class ABC(pd.DataFrame):
def __init__(self, *args, **kwargs):
details = {'Name' : ['Ankit', 'Aishwarya', 'Shaurya', 'Shivangi'],'Age' : [23, 21, 22, 21]}
super().__init__(details, *args, **kwargs)
#self._details = details
object.__setattr__(self, "details", details )
objAbc = ABC()
for index,row in sqldf("select Name from objAbc").iterrows():
print(row.Name)
似乎 pandasql 找不到类变量。请注意,由于无法添加列的警告,无法设置详细信息 self.details。
推荐阅读
- python - 我无法对我的算法进行回测
- php - HTML2PDF 页面存储文件但不通过电子邮件发送
- javascript - 暂停功能,直到按下按钮
- .net - 无法使用 .Net c# 程序中的存储过程备份 SQL Server 数据库,但 ssms 中的相同过程可以正常工作
- javascript - 返回 javascript SQL 数组的函数
- python - 如何在python中调整eps图的大小
- python - 迁移错误(django.db.utils.OperationalError)
- javascript - 只对表情符号做出一次反应 - Discord.js
- python - 使用元组和整数获取参数并返回结果
- r - 在 R 中,为什么 %% 对十进制数的行为不同?