import pandas as pd
import pandas_datareader.data as web
coins = pd.read_html('https://coinmarketcap.com/')
for name in coins[0][1][1:]:
print(name)
Run Code Online (Sandbox Code Playgroud)
结果在下面的错误消息中.当我打印硬币时,我得到了完整的表格,但是当我尝试获取特定信息时,它会给我这个错误消息.我知道这种格式是有效的,因为我已经从我学习的其他练习中完全复制了它,并且刚刚更改了网站.非常感谢.
C:\Users\AppData\Local\Programs\Python\Python36-32\python.exe C:/Users/Desktop/python_work/crypto/crypto_corr.py
Traceback (most recent call last):
File "C:\Users\AppData\Local\Programs\Python\Python36-32\lib\site-packages\pandas\core\indexes\base.py", line 2525, in get_loc
return self._engine.get_loc(key)
File "pandas\_libs\index.pyx", line 117, in pandas._libs.index.IndexEngine.get_loc
File "pandas\_libs\index.pyx", line 139, in pandas._libs.index.IndexEngine.get_loc
File "pandas\_libs\hashtable_class_helper.pxi", line 1265, in pandas._libs.hashtable.PyObjectHashTable.get_item
File "pandas\_libs\hashtable_class_helper.pxi", line 1273, in pandas._libs.hashtable.PyObjectHashTable.get_item
KeyError: 1
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:/Users/Desktop/python_work/crypto/crypto_corr.py", line 6, in <module>
for name …Run Code Online (Sandbox Code Playgroud) 我需要计算数据框中的一些前滚平均值,但真的不知道从哪里开始。
我知道如果我想提前 10 天选择一个单元格,我会这样做df.shift(-10),但我想要做的是计算提前 10 到 15 天之间的平均值。
所以我的想法是df.rolling(-10,-15).mean(),如果我试图计算时间上的移动平均线 df.rolling(15, 10).mean() 会完美地工作,我确实考虑过像这样计算平均值,然后以某种方式转移数据。
任何帮助都会很棒
非常感谢
我有一堆股票数据,我正在尝试构建一个数据框,从相关矩阵中获取前两个和底部的股票,以及它们的实际相关性。
假设矩阵corr如下所示:
A B C D E
A 1.00 0.65 0.31 0.94 0.55
B 0.87 1.00 0.96 0.67 0.41
C 0.95 0.88 1.00 0.72 0.69
D 0.64 0.84 0.99 1.00 0.78
E 0.71 0.62 0.89 0.32 1.00
Run Code Online (Sandbox Code Playgroud)
我想要做的是能够返回股票 A、B、C、D 和 E 的最佳两只和最不相关的股票及其相关性,同时降低每只股票与自身之间明显的 1.00 相关性。
生成的数据框,或任何最容易显示的数据框如下所示:
Stock 1st 1st_Val 2nd 2nd_Val Last Last_Val
A D 0.94 B 0.65 C 0.31
B C 0.96 A 0.87 E 0.41
C A 0.95 B 0.88 E 0.69
D C 0.99 B 0.84 …Run Code Online (Sandbox Code Playgroud) 我昨天才碰到Plotly,我试图找到一种很好的方式来生成表格,类似于在Matplotlib中生成图表。
最初,我尝试使用自己的数据,并始终在标题中得到错误消息。因此,我已经从可打印的网站复制并粘贴了准确的代码,仍然出现此错误。有人遇到过吗?有没有人有办法解决吗。我觉得这不是我的代码的简单问题。
import plotly.plotly as py
import plotly.graph_objs as go
import pandas as pd
df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/2014_usa_states.csv')
trace = go.Table(
header=dict(values=list(df.columns),
fill = dict(color='#C2D4FF'),
align = ['left'] * 5),
cells=dict(values=[df.Rank, df.State, df.Postal, df.Population],
fill = dict(color='#F5F8FF'),
align = ['left'] * 5))
data = [trace]
py.iplot(data, filename = 'pandas_table')
Run Code Online (Sandbox Code Playgroud)
这是我使用的代码,导致以下错误:
TypeError: __init__() got an unexpected keyword argument 'encoding'
如果有人可以替代plotly,那么在这里我可以制作美观的表,这也将非常有帮助。
非常感谢
我有一个货币对列表,比方说,它看起来像这样:
cp = ['EURUSD', 'CHFUSD', 'JPYUSD', 'CADUSD']
Run Code Online (Sandbox Code Playgroud)
我要做的是遍历此列表,将USD更改为GBP以生成将显示的新列表:
new_cp = ['EURGBP', 'CHFGBP', 'JPYGBP', 'CADGBP']
Run Code Online (Sandbox Code Playgroud)
我假设我会这样做的方法是遍历每一对,将字符串拆分成一个列表,删除最后3个元素,然后将'G','B','P'追加为新的最后3个元素,最后将其返回到一个字符串,并将其添加到新列表'new_cp'.
我开始的代码是:
for pair in cp:
split_pair = pair.split()
Run Code Online (Sandbox Code Playgroud)
但是,所有这些导致的结果是:
['EURUSD']
['CHFUSD']
Run Code Online (Sandbox Code Playgroud)
等等
所以它只是拆分列表,而不是拆分列表中每个货币对的字符串.
我知道这是相对初学的东西,但我真的很难过.我只是不明白为什么这不起作用.
如果你可以帮助解决我在那里做错的事情,或者甚至建议一种更有效的方式来实现我想要做的事情,那将非常感激.
我知道有一些关于此的线程,但我在实际SettingWithCopyWarning本身上遇到了麻烦,所以它们都没有任何帮助。
我最近对我的机器进行了核攻击,并且正在重新安装 Pycharm 和所有库等。在运行我的一些脚本时,我不断收到与抑制SettingWithCopyWarning.
import warnings
from pandas.core.common import SettingWithCopyWarning
warnings.simplefilter(action="ignore", category=SettingWithCopyWarning)
Run Code Online (Sandbox Code Playgroud)
这些是我正在运行的行,它们会导致以下错误消息:
ImportError: cannot import name 'SettingWithCopyWarning' from 'pandas.core.common'
Run Code Online (Sandbox Code Playgroud)
我查看了该common.py文件,没有看到任何对SettingWithCopyWarning. 我使用的是 Python 3.8 和 Pandas 版本 1.5.3。
干杯
python ×6
pandas ×5
correlation ×1
dataframe ×1
list ×1
pandas-settingwithcopy-warning ×1
plotly ×1
replace ×1
split ×1
warnings ×1