python - 类“property”没有定义“__getitem__”,因此不能在其实例上使用“[]”运算符
问题描述
我在名为“df”的熊猫数据框上使用 iloc 函数。这是我的代码:
import pandas as pd
class test:
df = pd.DataFrame
def __init__(self):
self.df = pd.dataframe()
def read_csv(self):
self.df = pd.read_csv(filename.csv)
def operation(self, num):
output_details = self.df.iloc[num]
return output_deatils
但是,我的 IDE 收到此警告:
“property”类未定义“ getitem ”,因此不能在其实例上使用“[]”运算符
我不知道出了什么问题。我正在使用 iloc 获取 Pandas 数据框中“num”行的所有值。我认为 output_details 实际上不是带有逗号分隔值的列表,而是熊猫数据类型。我该怎么做(或将其转换为列表)?
解决方案
它仍然不是最小的、完整的、可验证的示例(MCVE)。以后,请确保您可以执行您的示例,然后将其复制粘贴到问题中;它避免了这类问题。但如果我不得不猜测...
df = pd.DataFrame
不会将 DataFrame 的实例放入df
,而是放入一个DataFrame
类。该类具有iloc
属性,这是实例管理的方式df.iloc[...]
;但是类中的属性对象不能那样使用。
这是您的问题的 MCVE:
df = pd.DataFrame
df.iloc[0]
这是 的正确用法DataFrame
:
df = pd.DataFrame([[0]])
df.iloc[0]
显然,这也可以解决它:
self.df = pd.read_csv("filename.csv")
df.iloc[0]
推荐阅读
- ruby-on-rails - 大摇大摆地传递 Bearer 令牌时没有路由匹配
- java - 在代码外观原因中拆分长字符数组
- javascript - 从 JS 中的事件监听器获取价值
- python - 如何在 python 中用户输入带有换行符的文本?
- python - 在 Python 中将运算符定义为函数(迭代)
- android-studio - 从 Android Studio 以 root 身份启动模拟器
- sql - 计算相同的值
- javascript - 在 JavaScript 中的 while 语句中处理
- intellij-idea - LibericaJdk 11 与 openjfx
- python - 在 django 中运行 manage.py runserver 时找不到模块“hello_world”