【问题标题】:Datareader sorting?数据阅读器排序?
【发布时间】:2017-11-30 06:42:41
【问题描述】:

我是 python 新手,希望能找到一些我似乎无法找到的与 pandas datareader 排序相关的答案。这也是我第一次在这里发帖。

当我从具有特定列的数据读取器中提取数据时,它会自动将其放入数据框中并按字母顺序和降序排序。但是,有时我的数据是按升序排序的。有排序规则吗?当我根据 iloc[0] 绘制图表时,我知道这一点。所以,如果数据翻转一下,马上就很明显了。

据我所知,按升序排序是一种“示范”做法,因此,我使用 for 循环来保证这一点。我检查了许多财务数据分析,但他们没有这样做。观看了一些 YouTube 视频,他们的数据似乎也是按升序排列的。我很困惑。

另外,如果我错了,请纠正我,但由于数据总是按 aphetically 顺序排序,所以当我分配权重时,无论列表中的顺序如何,我也必须按该顺序进行排序?

这是一个简单的示例代码来说明我的意思

import numpy as np
import pandas as pd
from pandas_datareader import data as wb
import matplotlib.pyplot as plt

stocks = ['AAPL','MSFT','AMZN','TSLA']
data = wb.DataReader(stocks, 'yahoo', '2012-1-1')['Adj Close']

norm_data = data / data.iloc[-1] * 100
norm_data.plot(figsize = (15,6))
plt.show()

for循环

stocks = ['AAPL','MSFT','AMZN','TSLA']

data = pd.DataFrame()

for s in stocks:
    data[s] = wb.DataReader(s, 'yahoo', '2012-1-1')['Adj Close']

norm_data = data / data.iloc[0] * 100
norm_data.plot(figsize = (15,6))
plt.show()

我必须使用data.iloc[-1] 而不是data.iloc[0],因为顺序颠倒了。

【问题讨论】:

    标签: python sorting dataframe analytics datareader


    【解决方案1】:

    你可以这样做

    stocks = ['BSE/BOM532454','BSE/BOM532822','BSE/BOM500108']
    mydata = pd.DataFrame()
    for s in stocks:
        mydata[s] = web.DataReader(s,data_source='quandl', start='2014-1-1', api_key='YOUR_API_KEY')['Close']
    
    mydata = mydata.sort_values(by='Date')
    

    【讨论】:

      猜你喜欢
      • 2015-05-15
      • 2013-01-25
      • 1970-01-01
      • 1970-01-01
      • 2016-10-31
      • 1970-01-01
      • 1970-01-01
      • 2018-03-04
      • 1970-01-01
      相关资源
      最近更新 更多