0

次のタプルがあり、それを日付と通貨に変換する必要があります (通貨のコードが冗長すぎる場合は float にします)。私は仕事をすることができるパッケージに精通していません。

Pythonicな変換方法を提案できますか? どうもありがとう!

inc_data =[(u'Dec 31, 2012', u'104,507,100\n', u'56,000,000\n'),
           (u'Dec 31, 2011', u'106,916,100\n', u''),
           (u'Dec 31, 2010', u'99,870,100\n', u'')]

次の結果が得られることを願っています。

inc_data2=[(2012-12-31, 104507100.00, 56000000.00),
           (2011-12-31, 106916100.00, None),
           (2010-12-31, 99870100.00, None)]

datetime.strptime('date_string').date() を使用して単一の変数を変換できます。

num_string = u'100'
num = float(num_string)

しかし、値がタプルに格納されている場合の変換方法がわかりません。また、Python が null をどのように処理するのかわからないため、目的の結果として「なし」を使用します。ところで、実際には、最初の列の日付で始まる約 40 列があります。

4

1 に答える 1

0

日時オブジェクトに変換

from datetime import datetime

inc_data2 = []

for tupleValues in inc_data:
    date = tupleValues[0].replace(',', '')
    date_object = datetime.strptime(date, '%b %d %Y')
    print date_object

    currency1 = float(tupleValues[1].replace(',',''))

    if len(tupleValues[2]) >= 1: 
        currency2 = float(tupleValues[2].replace(',',''))
    else:
        currency2 = None

    tempList = []
    tempList.append(str(date_object))
    tempList.append(currency1)
    tempList.append(currency2)

    inc_data2.append(tempList)

出力 [['2012-12-31 00:00:00', 104507100.0, 56000000.0], ['2011-12-31 00:00:00', 106916100.0, None], ['2010-12-31 00:00:00'、99870100.0、なし]]

于 2013-10-30T01:05:43.537 に答える