数据框无法识别列?

时间:2019-12-09 10:26:53

标签: python pandas

所以我有一个数据框,其中有不同的Reliance Stock价格列。在使用df.index之后,我可以看到数据帧的索引是Date。但是,当我使用df["Date"]时,它会提示我

  

AttributeError:“ DataFrame”对象没有属性“ Date”

data = nsepy.get_history(symbol = "RELIANCE",start = datetime.date(2018,1,1) , end = datetime.datetime.now().date())
data["Date"]

为什么我无法选择此数据框的第一列?

4 个答案:

答案 0 :(得分:0)

enter image description here在数据框中没有名为“日期”的列。您看到的日期是数据框中的索引。 您可以使用以下行添加“日期”列:

data.reset_index(inplace = True)

答案 1 :(得分:0)

在这种情况下,“日期”是索引。因此,您必须要做data.index或像data.reset_index()['Date']这样使用reset_index。

答案 2 :(得分:0)

您尚未共享有关原始数据框的详细信息。 尝试打印列以查看“数据”列是否存在

print(data.columns)

如果您在列表中没有看到“数据”,则您的数据框不包含此列,或者它是索引列。如果是后者,则可以使用

data.index

答案 3 :(得分:0)

“日期”是数据框的索引,而不是列。

只能使用df.columns访问df[<col_name>]输出的列。

要检查数据框的索引,只需执行:df.index

示例:

df = pd.DataFrame([{"A": 10, "B": 5}, {"A":20, "B": 4}, {"A": 14, "B": 200}])
df = df.set_index('A')
print(df.index)

输出为:
Int64Index([10, 20, 14], dtype='int64', name='A')

要将数据框的特定列设置为索引:
df = df.set_index(<col-name>)

要撤消上述操作(将当前索引转换为列):
df.reset_index(inplace=True)

重置索引后,您将可以像常规列一样访问“日期”,因为它不再是数据框的索引。