-1

現在、次のコードを使用して、2 セットの財務データの交差日付列を取得しています。配列には、日付、o、h、l、cl が含まれます

#find intersection of date strings
def intersect(seq1, seq2):
    res = []                     # start empty
    for x in seq1:               # scan seq1
        if x in seq2:            # common item?
            res.append(x)


    return res


x = intersect(seta[:,0], setb[:,0])    # mixed types
print x

問題は、両方の交差が見つかった列、つまり日付列のみを返すことです。各セットの両方の cls 値を含む異なる列配列を何らかの形で返したいと思います...つまり、日付が両方に共通の場合、2 つの対応する cls 列の 2X1 配列を返します。何か案は?ありがとう。

4

2 に答える 2

0

さて、ここに完全な解決策があります。

株価情報をダウンロードするための Python ライブラリを入手する

見積もりを取得する

start_date, end_date = '20090309', '20090720'
ibm_data = get_historical_prices('IBM', start_date, end_date)
msft_data = get_historical_prices('MSFT', start_date, end_date)

行を辞書の日付キー付き辞書に変換します

def quote_series(series):
    columns = ['open', 'high', 'low', 'close', 'volume']
    return dict((item[0], dict(zip(columns, item[1:]))) for item in series[1:])

ibm = quote_series(ibm_data)
msft = quote_series(msft_data)

日付の交差を行う

ibm_dates = set(ibm.keys())
msft_dates = set(msft.keys())

both = ibm_dates.intersection(msft_dates)

for d in sorted(both):
    print d, ibm[d], msft[d]
于 2009-07-22T20:31:33.933 に答える
0

どのようだ:

def intersect(seq1, seq2):
    if seq1[0] == seq2[0]:  # compare the date columns
        return (seq1[4], seq2[4])  # return 2-tuple with the cls values
于 2009-07-22T20:33:36.677 に答える