我是Pandas (和Python)的新手,正在尝试使用Yahoo API来计算股票价格。
我需要获取数据,遍历数据并获取日期和值。
以下是代码
df = pd.get_data_yahoo( symbols = 'AAPL',
start = datetime( 2011, 1, 1 ),
end = datetime( 2012, 1, 1 ),
interval = 'm' )结果是:
df
Open High Low Close Volume
Date
2011-01-03 325.640015 348.600006 324.840027 339.320007 140234700
2011-02-01 341.299988 364.899994 337.720001 353.210022 127618700
2011-03-01 355.470001 361.669983 326.259979 348.510010 125874700 我可以获取日期,但不能获取月份日期值,因为它是索引(?)
如何最好地遍历此信息的数据?这是关于处理数据,而不是排序或搜索。
发布于 2017-03-22 16:01:59
如果您需要迭代数据帧中的行,并进行一些处理,那么pandas.DataFrame.apply()工作得很好。
代码:
一些模拟处理代码..。
def process_data(row):
# the index becomes the name when converted to a series (row)
print(row.name.month, row.Close)测试代码:
import datetime as dt
from pandas_datareader import data
df = data.get_data_yahoo(
'AAPL',
start=dt.datetime(2011, 1, 1),
end=dt.datetime(2011, 5, 1),
interval='m')
print(df)
# process each row
df.apply(process_data, axis=1)结果:
Open High Low Close Volume \
Date
2011-01-03 325.640015 348.600006 324.840027 339.320007 140234700
2011-02-01 341.299988 364.899994 337.720001 353.210022 127618700
2011-03-01 355.470001 361.669983 326.259979 348.510010 125874700
2011-04-01 351.110016 355.130005 320.160004 350.130005 128252100
Adj Close
Date
2011-01-03 43.962147
2011-02-01 45.761730
2011-03-01 45.152802
2011-04-01 45.362682
1 339.320007
2 353.210022
3 348.51001
4 350.130005发布于 2017-03-23 14:20:49
这就是我在尝试使用来自雅虎的数据时,我的生活变得很棒的原因。首先是从dataframe索引中获取日期。
df = df.assign( date = df.index.date )下面是我在处理数据时发现的其他一些有用的东西。
df [ 'diff' ] = df [ 'Close' ].diff( )
df [ 'pct_chg' ] = df [ 'Close' ].pct_change()
df [ 'hl' ] = df [ 'High' ] - df [ 'Low' ]熊猫是很神奇的东西。
发布于 2017-03-23 23:31:54
我相信这对你应该是有效的。
import pandas_datareader.data as web
import datetime
start = datetime.datetime(2013, 1, 1)
end = datetime.datetime(2016, 1, 27)
df = web.DataReader("GOOGL", 'yahoo', start, end)
dates =[]
for x in range(len(df)):
newdate = str(df.index[x])
newdate = newdate[0:10]
dates.append(newdate)
df['dates'] = dates
print df.head()
print df.tail()另外,请看下面的链接,了解如何做这些事情的更多有用的提示。
https://pandas-datareader.readthedocs.io/en/latest/remote_data.html#yahoo-finance
https://stackoverflow.com/questions/42942686
复制相似问题