2016-11-06 11 views
0

私はquandl.comから財務データセットのメタデータをダウンロードしています。 quandl.comのデータは既に辞書形式です。私はこのデータをquandl.comから取り出し、それをDataFrameに整理してExcelにインポートしたいと考えています。DataFrameの行に辞書の値を設定するにはどうすればよいですか?

これはquandl.comからダウンロードしている金融データセットのリストを含むテキストファイル( 'Indicator_list.txt')です。私は、これらのシンボルのそれぞれのメタデータをDataFrameにまとめたいと思っています。

COM/OIL_WTI 
BOE/XUDLADS 
BOE/XUDLADD 
BOE/XUDLB8KL 
BOE/XUDLCDS 
BOE/XUDLCDD 

これは、私はこれは私がquandlmetadata辞書にこれを追加して、電流を使用quandl.com

{'start_date': datetime.date(1975, 1, 2), 'column_names': ['Date', 'Value'], 'limit': None, 'collapse': None, 'order': 'asc', 'end_date': datetime.date(2016, 11, 3), 'transform': None, 'column_index': None, 'frequency': 'daily'} 

次からのメタデータの出力である

import quandl 
import pandas as pd 

#This adjusts the layout in the command 
#promt to have columns displayed side by side 
pd.set_option('expand_frame_repr', False) 

#This "with open" statment opens a text file that 
#has the symbols I want to get the metadata on 
with open ('Indicator_list.txt') as file_object: 
    Current_indicators = file_object.read() 
    tickers = Current_indicators.split('\n') 

#quandlmetadata is a blank dictionary that I am 
#appending the meatadata to 
quandlmetadata={} 

#this loops through all the values in 
#Indicator_list.txt" 
for i in tickers: 

    #metadata represents one set of metadata 
    metadata = quandl.Dataset(i).data().meta 

を実行していたコードですindicator_list.txtの記号 "i"を使用して、辞書のキーを指定します。

quandlmetadata[i]=(metadata) 

これはquandlmetadataの出力

{'BOE/XUDLADS': {'column_names': ['Date', 'Value'], 'end_date': datetime.date(2016, 11, 3), 'transform': None, 'collapse': None, 'order': 'asc', 'start_date': datetime.date(1975, 1, 2), 'limit': None, 'column_index': None, 'frequency': 'daily'}, 'BOE/XUDLCDD': {'column_names': ['Date', 'Value'], 'end_date': datetime.date(2016, 11, 3), 'transform': None, 'collapse': None, 'order': 'asc', 'start_date': datetime.date(1975, 1, 2), 'limit': None, 'column_index': None, 'frequency': 'daily'}, 'BOE/XUDLB8KL': {'column_names': ['Date', 'Value'], 'end_date': datetime.date(2016, 11, 3), 'transform': None, 'collapse': None, 'order': 'asc', 'start_date': datetime.date(2011, 8, 1), 'limit': None, 'column_index': None, 'frequency': 'daily'}, 'COM/OIL_WTI': {'column_names': ['date', 'value'], 'end_date': datetime.date(2016, 11, 4), 'transform': None, 'collapse': None, 'order': 'asc', 'start_date': datetime.date(1983, 3, 30), 'limit': None, 'column_index': None, 'frequency': 'daily'}, 'BOE/XUDLADD': {'column_names': ['Date', 'Value'], 'end_date': datetime.date(2016, 11, 3), 'transform': None, 'collapse': None, 'order': 'asc', 'start_date': datetime.date(1975, 1, 2), 'limit': None, 'column_index': None, 'frequency': 'daily'}, 'BOE/XUDLCDS': {'column_names': ['Date', 'Value'], 'end_date': datetime.date(2016, 11, 3), 'transform': None, 'collapse': None, 'order': 'asc', 'start_date': datetime.date(1975, 1, 2), 'limit': None, 'column_index': None, 'frequency': 'daily'}} 

最後に、私はquandlmetadata辞書はデータフレーム(またはより良いだろう、別の方法)になっていたいです

これは最終的なものでコードの一部

df = pd.DataFrame(index = quandlmetadata.keys(),columns =['transform', 'frequency', 'limit', 'end_date', 'collapse', 'column_names','start_date', 'order', 'column_index'] ) 

df

01の出力
   transform frequency limit end_date collapse column_names start_date order column_index 
BOE/XUDLB8KL  NaN  NaN NaN  NaN  NaN   NaN  NaN NaN   NaN 
BOE/XUDLADS  NaN  NaN NaN  NaN  NaN   NaN  NaN NaN   NaN 
BOE/XUDLADD  NaN  NaN NaN  NaN  NaN   NaN  NaN NaN   NaN 
BOE/XUDLCDS  NaN  NaN NaN  NaN  NaN   NaN  NaN NaN   NaN 
COM/OIL_WTI  NaN  NaN NaN  NaN  NaN   NaN  NaN NaN   NaN 
BOE/XUDLCDD  NaN  NaN NaN  NaN  NaN   NaN  NaN NaN   NaN 

dfの出力はまさに私が望むものです。 Indicator_list.txtのティッカーが私のインデックスで、列はmetadata.keys()です。私が働くことができない唯一の事は、DataFrameの行にquandlmetadata辞書値を入力することです。最終目標はこのリストをExcelにインポートできるようにすることです。データフレームを使用せずにこれを行う方法があれば、私はそれに挑戦しています。

答えて

1

おそらくDataFrame.from_dictを使用できますか?

In [15]: pd.DataFrame.from_dict(quandlmetadata, orient='index') 
Out[15]: 
      column_index end_date order column_names start_date collapse transform limit frequency 
BOE/XUDLADD   None 2016-11-03 asc [Date, Value] 1975-01-02  None  None None  daily 
BOE/XUDLADS   None 2016-11-03 asc [Date, Value] 1975-01-02  None  None None  daily 
BOE/XUDLB8KL   None 2016-11-03 asc [Date, Value] 2011-08-01  None  None None  daily 
BOE/XUDLCDD   None 2016-11-03 asc [Date, Value] 1975-01-02  None  None None  daily 
BOE/XUDLCDS   None 2016-11-03 asc [Date, Value] 1975-01-02  None  None None  daily 
COM/OIL_WTI   None 2016-11-04 asc [date, value] 1983-03-30  None  None None  daily 

column_namesの列は非常に便利だとは思いません。日付列のpd.to_datetimeを手作業で呼び出して、文字列ではなくdatetime64列にすることもできます。

関連する問題