Python小练习2:pandas.Dataframe使用方法示例demo
生活随笔
收集整理的這篇文章主要介紹了
Python小练习2:pandas.Dataframe使用方法示例demo
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
pandas.Dataframe使用方法示例demo
本文通過一個實例來介紹pandas.Dataframe的各種常用操作,問題總結并修改自coursera上南京大學的課程:用Python玩轉數據。
直接進入正題,我們的示例首先調用matplotlib.finance包中提供的函數quotes_historical_yahoo_ochl,通過雅虎財經提供的api函數得到了微軟公司近兩年的股票數據,構造成數據框Dataframe的形式。然后對其股票數據進行簡單的分析和操作,例如求微軟公司2015年每個月股票收盤價的平均值。通過多個類似的問題,涵蓋了大多數常用Dataframe操作的練習。
代碼如下:(python版本3.5)
""" Created on Mon Jan 16 17:26:05 2017 練習: 對微軟公司股票數據的操作練習 @author: AS """from matplotlib.finance import quotes_historical_yahoo_ochl from datetime import date import pandas as pd today = date.today() start = (today.year-2, today.month, today.day) quotesMS = quotes_historical_yahoo_ochl('MSFT', start, today) #獲取微軟兩年內的股票數據 attributes=['date','open','close','high','low','volume'] #屬性描述 quotesdfMS = pd.DataFrame(quotesMS, columns= attributes) #構造成DataFrameprint('通過雅虎財經api讀取的近兩年微軟公司的股票數據的前5條') print(quotesdfMS[:5])list = [] for i in range(0, len(quotesMS)):x = date.fromordinal(int(quotesMS[i][0])) # 轉換存儲時間的格式,例 735618 轉換為 2015-01-20y = date.strftime(x, '%y/%m/%d') #進一步轉換格式list.append(y) quotesdfMS.index = list #用轉換后的時間變量作為索引 quotesdfMS = quotesdfMS.drop(['date'], axis = 1) #將多余的時間變量剔除print('\n查詢在2015年整年內(即1月1日至12月31日)微軟股票收盤價最高的5天數據。') print(quotesdfMS['15/01/01':'15/12/31'].sort('close', ascending=0)[:5])print('\n根據成交量升序排列2015年上半年的微軟股票數據,顯示前5條') print(quotesdfMS['15/1/1':'15/5/31'].sort('volume')[:5])print('\n統計在2015年整年內(即1月1日至12月31日)微軟股票收盤價每個月的均值') list = [] quotesdfMS15 = quotesdfMS['15/01/01':'15/12/31'] for i in range(0, len(quotesdfMS15)):list.append(int(quotesdfMS15.index[i][3:5])) #時間索引的第3,4個字符對應月份,例如2015-01-20對應月份'01' quotesdfMS15['month'] = list #添加一列月份變量 print(quotesdfMS15.groupby('month').mean().close) #根據month分組,求每組所有變量的均值print('\n統計在2015年整年內(即1月1日至12月31日)微軟股票漲價的每個月的天數') list1 = [] tmpdf = quotesdfMS['15/01/01':'15/12/31'] for i in range(0, len(tmpdf)):list1.append(int(tmpdf.index[i][3:5])) tmpdf['month'] = list1 print(tmpdf[ tmpdf.close > tmpdf.open]['month'].value_counts())print('\n合并在2015年整年內(即1月1日至12月31日)微軟股票收盤價最高的5天和最低的5天') sorted = tmpdf.sort('close') print(pd.concat([sorted[:5], sorted[len(sorted)-5:]]))
總結
以上是生活随笔為你收集整理的Python小练习2:pandas.Dataframe使用方法示例demo的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 协议详解_I2C协议详解
- 下一篇: android webview网页显示不