Pandas 索引创建错误(结果 = self._data[key] ):HEELP
Pandas Indexing Creates ERROR ( Result = self._data[key] ): HEELP
使用 Pandas 和索引时出错。为什么?
我什至问过 Derek Banas,他不确定为什么不起作用所以请帮忙
'quote format'
底部的错误
这是我的代码:
import numpy as np
import pandas as pd
from pandas_datareader import data as web
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
%matplotlib inline
import datetime as dt #For defining dates
import mplfinance as mpf # Matplotlib finance
import time
import yfinance as yf;
# Used to get data from a directory
import os
from os import listdir
from os.path import isfile, join
pd.set_option('display.max_columns', None)
pd.set_option('display.max_rows', 5);
#Statsmodels is a great library we can use to run regressions.
import statsmodels.api as sm
# Seaborn extends the capabilities of Matplotlib
import seaborn as sns
# Used for calculating regressions
from statsmodels.tsa.ar_model import AutoReg, ar_select_order
msft= yf.download(tickers='MSFT', period = '1mo',interval = '5m');
x = msft.index; close = msft.index['Adj Close'], high = msft['High']; low = msft['Low']; openprice=msft['Open'];
#print(x); print(high);
print(msft)
错误是:
x = msft.index; close = msft.index['Adj Close'];
---- " [my addrs]...\pandas\core\indexes\extension.py, line 238 in getitem
result = self._data[key] Following a tutorial
https://youtu.be/boouvnzw-G8?t=582
我在 windows 上使用 Eclipse。为什么 Python 在我索引视频中的内容时不起作用?感谢,我是一个低等学生,无法理解为什么我的 github 存储库代码的复制粘贴不起作用。 我什至问过 Derek Banas,他不确定为什么不起作用所以请帮忙
好像是格式问题..
更改此行
x = msft.index; close = msft.index['Adj Close'], high = msft['High']; low = msft['Low']; openprice=msft['Open'];
对此:
x = msft.index
# THIS LINE CAUSES THE ERROR
# close = msft.index['Adj Close']
close = msft['Adj Close']
high = msft['High']
low = msft['Low']
openprice=msft['Open']
提示 1:不需要 ;任何地方。删除它们。
技巧 2:每行一条语句。
问题是 msft.index
是一个 索引 而不是 DataFrame 的列。而您正在尝试访问它,就好像它是一列 (msft.index[<ColumnName>]
)。
应该只是msft[<ColumnName>]
。详情见下文:
运行:
msft= yf.download(tickers='MSFT', period = '1mo',interval = '5m');
type(msft.index)
输出:
pandas.core.indexes.datetimes.DatetimeIndex
运行:
msft.head()
输出:
Open High Low Close Adj Close Volume
Datetime
2021-11-04 09:30:00-04:00 332.890015 333.239990 329.640015 330.549988 330.549988 1619634
2021-11-04 09:35:00-04:00 330.000000 330.589996 329.859985 330.390015 330.390015 966856
2021-11-04 09:40:00-04:00 330.500000 332.299988 330.450104 332.269989 332.269989 760918
2021-11-04 09:45:00-04:00 332.250000 333.100006 332.170013 332.989990 332.989990 526600
2021-11-04 09:50:00-04:00 332.750000 333.179993 332.510010 333.174988 333.174988 498996
你需要这样访问它(去掉.index
):
运行:
msft['Adj Close']
输出:
Datetime
2021-11-04 09:30:00-04:00 330.549988
2021-11-04 09:35:00-04:00 330.390015
2021-11-04 09:40:00-04:00 332.269989
2021-11-04 09:45:00-04:00 332.989990
2021-11-04 09:50:00-04:00 333.174988
...
2021-12-03 15:35:00-05:00 320.594604
2021-12-03 15:40:00-05:00 320.304993
2021-12-03 15:45:00-05:00 320.317505
2021-12-03 15:50:00-05:00 321.679993
2021-12-03 15:55:00-05:00 323.149994
Name: Adj Close, Length: 1603, dtype: float64
我猜这个错误是 copy/paste 打字错误造成的(因为视频没有像 .index
那样的错误)。
我强烈赞同@WesleyJonCheek 的建议:“每行一个语句”
使用 Pandas 和索引时出错。为什么? 我什至问过 Derek Banas,他不确定为什么不起作用所以请帮忙 'quote format'
底部的错误这是我的代码:
import numpy as np
import pandas as pd
from pandas_datareader import data as web
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
%matplotlib inline
import datetime as dt #For defining dates
import mplfinance as mpf # Matplotlib finance
import time
import yfinance as yf;
# Used to get data from a directory
import os
from os import listdir
from os.path import isfile, join
pd.set_option('display.max_columns', None)
pd.set_option('display.max_rows', 5);
#Statsmodels is a great library we can use to run regressions.
import statsmodels.api as sm
# Seaborn extends the capabilities of Matplotlib
import seaborn as sns
# Used for calculating regressions
from statsmodels.tsa.ar_model import AutoReg, ar_select_order
msft= yf.download(tickers='MSFT', period = '1mo',interval = '5m');
x = msft.index; close = msft.index['Adj Close'], high = msft['High']; low = msft['Low']; openprice=msft['Open'];
#print(x); print(high);
print(msft)
错误是:
x = msft.index; close = msft.index['Adj Close'];
---- " [my addrs]...\pandas\core\indexes\extension.py, line 238 in getitem
result = self._data[key] Following a tutorial https://youtu.be/boouvnzw-G8?t=582
我在 windows 上使用 Eclipse。为什么 Python 在我索引视频中的内容时不起作用?感谢,我是一个低等学生,无法理解为什么我的 github 存储库代码的复制粘贴不起作用。 我什至问过 Derek Banas,他不确定为什么不起作用所以请帮忙
好像是格式问题.. 更改此行
x = msft.index; close = msft.index['Adj Close'], high = msft['High']; low = msft['Low']; openprice=msft['Open'];
对此:
x = msft.index
# THIS LINE CAUSES THE ERROR
# close = msft.index['Adj Close']
close = msft['Adj Close']
high = msft['High']
low = msft['Low']
openprice=msft['Open']
提示 1:不需要 ;任何地方。删除它们。
技巧 2:每行一条语句。
问题是 msft.index
是一个 索引 而不是 DataFrame 的列。而您正在尝试访问它,就好像它是一列 (msft.index[<ColumnName>]
)。
应该只是msft[<ColumnName>]
。详情见下文:
运行:
msft= yf.download(tickers='MSFT', period = '1mo',interval = '5m');
type(msft.index)
输出:
pandas.core.indexes.datetimes.DatetimeIndex
运行:
msft.head()
输出:
Open High Low Close Adj Close Volume
Datetime
2021-11-04 09:30:00-04:00 332.890015 333.239990 329.640015 330.549988 330.549988 1619634
2021-11-04 09:35:00-04:00 330.000000 330.589996 329.859985 330.390015 330.390015 966856
2021-11-04 09:40:00-04:00 330.500000 332.299988 330.450104 332.269989 332.269989 760918
2021-11-04 09:45:00-04:00 332.250000 333.100006 332.170013 332.989990 332.989990 526600
2021-11-04 09:50:00-04:00 332.750000 333.179993 332.510010 333.174988 333.174988 498996
你需要这样访问它(去掉.index
):
运行:
msft['Adj Close']
输出:
Datetime
2021-11-04 09:30:00-04:00 330.549988
2021-11-04 09:35:00-04:00 330.390015
2021-11-04 09:40:00-04:00 332.269989
2021-11-04 09:45:00-04:00 332.989990
2021-11-04 09:50:00-04:00 333.174988
...
2021-12-03 15:35:00-05:00 320.594604
2021-12-03 15:40:00-05:00 320.304993
2021-12-03 15:45:00-05:00 320.317505
2021-12-03 15:50:00-05:00 321.679993
2021-12-03 15:55:00-05:00 323.149994
Name: Adj Close, Length: 1603, dtype: float64
我猜这个错误是 copy/paste 打字错误造成的(因为视频没有像 .index
那样的错误)。
我强烈赞同@WesleyJonCheek 的建议:“每行一个语句”