我在从 Excel 文件读取数据时遇到一些问题。\nExcel 文件包含带有 unicode 字符的列名称。
\n\n由于一些自动化原因,我需要将usecols参数传递给 pandas.read_excel 函数。
\n\n问题是,当我不使用usecols参数时,数据加载时不会出现错误。
\n\n这是代码:
\n\nimport pandas as pd\n\ndf = pd.read_excel(file)\ndf.colums\n\nIndex([u\'col1\', u\'col2\', u\'col3\', u\'col with unicode \xc3\xa0\', u\'col4\'], dtype=\'object\')\nRun Code Online (Sandbox Code Playgroud)\n\n如果我使用 usecols:
\n\nCOLUMNS = [\'col1\', \'col2\', \'col with unicode \xc3\xa0\']\ndf = pd.read_excel(file, usecols = COLUMNS)\nRun Code Online (Sandbox Code Playgroud)\n\n我收到以下错误:
\n\nValueError: Usecols do not match columns, columns expected but not found: [\'col with unicode \\xc3\\xa0\']\nRun Code Online (Sandbox Code Playgroud)\n\n使用encoding = \'utf-8\'read_excel 作为参数并不能解决问题,并且还对 COLUMNS 元素进行编码。
编辑:这里是完整的错误窗口。
\n\n …我正在尝试学习熊猫并想加载一些股票数据。我正在学习一门课程,该课程建议我加载 pandas.io.data,但这不起作用,因为 io.data 已折旧。所以我决定改用pandas-datareader。但是我正在努力将它安装在 Anaconda(Jupiter 笔记本)的 mac 上。
我第一次运行 import pandas_datareader 作为 pdweb 我得到 ModuleNotFoundError: No module named 'pandas_datareader'。这并不奇怪,因为我以前从未使用过它,所以我在终端中运行 pip3 install pandas_datareader 成功安装了它自己。但是,木星笔记本仍然给我同样的错误。在这一点上,我尝试在终端 conda install -c https://conda.anaconda.org/anaconda pandas-datareader 中运行,但它没有像 -bash: conda: command not found 那样工作。
请帮忙。我正在寻找详细的解释,因为我不是太技术人员。
我在木星上跑什么
import numpy as np
from pandas import Series, DataFrame
import pandas as pd
import pandas_datareader as pdweb
import datetime
Run Code Online (Sandbox Code Playgroud)
结果
---------------------------------------------------------------------------
ModuleNotFoundError Traceback (most recent call last)
<ipython-input-6-da568f513c93> in <module>
2 from pandas import Series, DataFrame
3 import pandas as pd
----> 4 …Run Code Online (Sandbox Code Playgroud) 我想从谷歌源获取数据,但遇到一些错误
这是我的代码——
from pandas_datareader import data
import datetime
start=datetime.datetime(2020,1,1)
end=datetime.datetime(2020,6,30)
print(data.DataReader("TSLA",'google',start,end))
Run Code Online (Sandbox Code Playgroud)
我遇到的错误:
NotImplementedError Traceback (most recent call last)
<ipython-input-25-a7c6d692c622> in <module>
1 start=datetime.datetime(2020,1,1)
2 end=datetime.datetime(2020,6,30)
----> 3 print(data.DataReader("TSLA",'google',start,end))
c:\users\rishi\appdata\local\programs\python\python38-32\lib\site-packages\pandas\util\_decorators.py in wrapper(*args, **kwargs)
212 else:
213 kwargs[new_arg_name] = new_arg_value
--> 214 return func(*args, **kwargs)
215
216 return cast(F, wrapper)
c:\users\rishi\appdata\local\programs\python\python38-32\lib\site-packages\pandas_datareader\data.py in DataReader(name, data_source, start, end, retry_count, pause, session, api_key)
374 if data_source not in expected_source:
375 msg = "data_source=%r is not implemented" % data_source
--> 376 raise NotImplementedError(msg)
377
378 if …Run Code Online (Sandbox Code Playgroud) 我在 pandas_datareader 上工作正常,然后今天我从下面的链接中安装了两个雅虎财经,试图解决另一个问题。
pip install yfinance
pip install fix_yahoo_finance
Run Code Online (Sandbox Code Playgroud)
上述安装后,pandas_datareader 不能再使用了。我用谷歌搜索了一下,确实添加了以下导入,但 pandas_datareader 仍然无法正常工作。
from urllib.parse import urlencode
Run Code Online (Sandbox Code Playgroud)
这是错误:非常感谢您的帮助。
from pandas_datareader import data
File "C:\Users\yongn\Anaconda3\lib\site-packages\pandas_datareader\__init__.py", line 2, in <module>
from .data import (
File "C:\Users\yongn\Anaconda3\lib\site-packages\pandas_datareader\data.py", line 11, in <module>
from pandas_datareader.av.forex import AVForexReader
File "C:\Users\yongn\Anaconda3\lib\site-packages\pandas_datareader\av\__init__.py", line 6, in <module>
from pandas_datareader.base import _BaseReader
File "C:\Users\yongn\Anaconda3\lib\site-packages\pandas_datareader\base.py", line 7, in <module>
from pandas.io.common import urlencode
ImportError: cannot import name 'urlencode'
'''
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 python 中的 pandas datareader 使用 data_source 作为 Yahoo 来获取一家公司(在本例中为 APPLE)的历史价格数据。
直到几天前(2021 年 7 月),这种方法还很有效。我不确定雅虎是否再次停止了他们的 API 或者只是我一个人这样做。
import pandas_datareader as wb
data = wb.DataReader('AAPL', data_source='yahoo', start='2019-9-1')
print(data)
Run Code Online (Sandbox Code Playgroud)
这是我得到的错误:
Traceback (most recent call last):
File "C:/Users/Allwin/Documents/GitHub/Dynamic_Programming/Apna Col/scratchBook.py", line 4, in <module>
data = wb.DataReader('AAPL', data_source='yahoo', start='2019-9-1')
File "C:\Users\Allwin\anaconda3\envs\Complete_FinAnalysis\lib\site-packages\pandas\util\_decorators.py", line 199, in wrapper
return func(*args, **kwargs)
File "C:\Users\Allwin\anaconda3\envs\Complete_FinAnalysis\lib\site-packages\pandas_datareader\data.py", line 376, in DataReader
return YahooDailyReader(
File "C:\Users\Allwin\anaconda3\envs\Complete_FinAnalysis\lib\site-packages\pandas_datareader\base.py", line 253, in read
df = self._read_one_data(self.url, params=self._get_params(self.symbols))
File "C:\Users\Allwin\anaconda3\envs\Complete_FinAnalysis\lib\site-packages\pandas_datareader\yahoo\daily.py", line 153, in _read_one_data
resp = …Run Code Online (Sandbox Code Playgroud) 我刚刚使用pandas datareader来获取过去两周左右的库存数据,并且工作正常.从昨天开始突然提供的日期不再有效.它只是给我过去一年的数据,我不能改变日期.用于处理注释掉的那个,但现在不是.我甚至改变它使用datetime对象,但仍然无法正常工作.任何的想法?我更新了熊猫和pandas_datareader仍然没有运气.使用另一台计算机仍然没有工作.他们刚刚更改了API吗?
from pandas_datareader import data
import datetime
#start = '2010-01-01'
#end = '2017-7-31'
start = datetime.datetime(2010, 1, 1)
end = datetime.datetime(2017,7, 31)
f = data.DataReader('AAPL', 'google', start, end)
print(f.head())
Run Code Online (Sandbox Code Playgroud)
输出:
Open High Low Close Volume
Date
2016-09-19 115.19 116.18 113.25 113.58 47023046
2016-09-20 113.05 114.12 112.51 113.57 34514269
2016-09-21 113.85 113.99 112.44 113.55 36003185
2016-09-22 114.35 114.94 114.00 114.62 31073984
2016-09-23 114.42 114.79 111.55 112.71 52481151
Run Code Online (Sandbox Code Playgroud) 我正在用python创建一个股票交易监控器,并且在pandas_datareader模块上遇到了问题。该代码中的原始模块为pandas.io.data,但已进行了修订,因为pandas不再支持该模块。这是代码;
import pandas as pd
import pandas_datareader as web
import datetime
start = datetime.datetime(2016, 1, 1)
end = datetime.date.today()
apple = web.DataReader("AAPL", "yahoo", start, end)
type(apple)
Run Code Online (Sandbox Code Playgroud)
该代码带有错误。
Traceback (most recent call last):
File "/Users/euanoflynn/anaconda/tests/Tests.py", line 2, in <module>
import pandas_datareader as web # Package and modules for importing data; this code may change depending on pandas version
ModuleNotFoundError: No module named 'pandas_datareader'
Run Code Online (Sandbox Code Playgroud)
我觉得我做错了什么。
如果需要,我可以发布更多信息。
我在使用 pandas-datareader 从 Quandl 导入数据时遇到问题。这是我尝试过的代码(使用真正的 API 密钥):
import pandas_datareader.data as pdr
from datetime import date
start=date(1970,1,1)
end=date.today()
ticker='F'
qkey=[My API Key]
pdr.QUANDL_API_KEY=qkey
QUANDL_API_KEY=qkey
pdrquandl=pdr.DataReader('WIKI/'+ticker,'quandl',start,end)
pdrquandl=pdr.DataReader('WIKI/'+ticker,'quandl',start,end,api_key=qkey)
Run Code Online (Sandbox Code Playgroud)
当我运行它时,我收到以下错误消息:
>>> pdrquandl=pdr.DataReader('WIKI/'+ticker,'quandl',start,end)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python37\lib\site-packages\pandas_datareader\data.py", line 379, in DataReader
session=session, api_key=access_key).read()
File "C:\Python37\lib\site-packages\pandas_datareader\quandl.py", line 54, in __init__
raise ValueError('The Quandl API key must be provided either '
ValueError: The Quandl API key must be provided either through the api_key variable or through the environmental …Run Code Online (Sandbox Code Playgroud) 我仍在学习如何使用数据框,但仍然无法做到这一点......我得到了这样的数据框:
A B C D1 D2 D3
1 2 3 5 6 7
Run Code Online (Sandbox Code Playgroud)
我需要它看起来像:
A B C DA D
1 2 3 D1 5
1 2 3 D2 6
1 2 3 D3 7
Run Code Online (Sandbox Code Playgroud)
我知道我应该使用 groupby 之类的东西,但我仍然找不到好的文档。
python ×8
pandas ×5
python-3.x ×3
anaconda ×1
dataframe ×1
installation ×1
python-2.7 ×1
stock ×1