私はcsvファイルの行に1つの列に命令が入っている場合、python(3。+)/ pandas(.18)を使用して各ordersdictの1つの要素を抽出する方法を教えてください。Ordereddictsの配列から値を抽出する方法は?
例を示します。私の列attributes
は、billingPostalCodes
がordereddictsに隠されています。私が気にするのは、billingPostalCodes
の列を作成することだけです。
dict = OrderedDict([(u'attributes', OrderedDict([(u'type', u'Account'), (u'url', u'/services/data/v29.0/sobjects/Account/001d000001tKZmWAAW')])), (u'BillingPostalCode', u'85020')])
print(dict['BillingPostalCode'])
私が買ってあげる:私はこれを行う場合
id attributes
1 OrderedDict([(u'attributes', OrderedDict([(u'type', u'Account'), (u'url', u'/services/data/v29.0/sobjects/Account/001d000001tKZmWAAW')])), (u'BillingPostalCode', u'85020')])
2 OrderedDict([(u'attributes', OrderedDict([(u'type', u'Account'), (u'url', u'/services/data/v29.0/sobjects/Account/001d000001tKZmWAAW')])), (u'BillingPostalCode', u'55555')])
...
私は個人レベルで知っている:
import pandas as pd
from datetime import datetime
import csv
from collections import OrderedDict
df = pd.read_csv('sf_account_sites.csv')
print(df)
利回り:
は、ここに私のデータは今のようになります結果として85020を返します。
このようにするにはどうすればよいですか?
id zip_codes
1 85020
2 55555
...
適用機能を使用する必要がありますか? forループ?私はいろいろなことを試しましたが、データフレームでは何もできません。
私はより具体的にする必要がある場合は、事前に感謝し、私に教えてください。
これはうまくいくようですが、これを試してみると 'TypeError :('文字列インデックスは整数でなければなりません'、 'インデックス0で発生しました')'なぜこれが当てはまるのでしょうか? –
@AndrewKraemer引用した例でこれをテストしたところ、うまくいきました。使用しているパンダのバージョンは何ですか?私はパンダス0.18です。私はこのような列名ではなく、整数で発生するようなパンダの行インデックスの古いバージョンではないと思われる。代わりに 'row [1] [" BillingPostalCode "]'を試してください。 –
私は本当に.18です。私はあなたが推薦したものを実行し、同じ問題を抱えていました。実際のデータセットをアップロードすることができれば助かります。属性列のデータは文字列として保存されているように見えます。ここでは、これはcollections.OrderedDictで動作する必要があります。文字列をOderedDictに変換する方法がわかりません。 –