如果我有一个csv文件行,其中一列中有ordereddicts,那么如何创建一个新列,使用python(3.+)/pandas(.18)提取每个ordereddict的单个元素?在
这里有一个例子。我的专栏attributes
在ordereddicts中隐藏了billingPostalCodes
。我只关心用billingPostalCodes
创建一个列。在
以下是我现在的数据:
import pandas as pd
from datetime import datetime
import csv
from collections import OrderedDict
df = pd.read_csv('sf_account_sites.csv')
print(df)
产量:
^{pr2}$我个人知道如果我这样做:
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'])
结果我会拿回85020。在
我要怎样才能让它看起来像这样?在
id zip_codes
1 85020
2 55555
...
我必须使用应用功能吗?一个for循环?我尝试了很多不同的方法,但是我在数据帧上什么都做不到。在
提前谢谢,如果需要更具体的话,请告诉我。在
我花了一段时间来解决这个问题,但问题是通过执行以下操作来解决的:
这里的诀窍是要注意
axis = 1
强制pandas
遍历每一行,而不是每一列(这是默认设置,如docs所示)。在从那里,一个简单的问题是首先提取相关列(在本例中是
attributes
),然后从那里只提取BillingPostalCode
。在您需要格式化生成的DataFrame,以获得正确的列名。在
相关问题 更多 >
编程相关推荐