【发布时间】:2015-05-21 11:13:08
【问题描述】:
我有一个数据框,其中 'location' 列包含一个对象:
import pandas as pd
item1 = {
'project': 'A',
'location': {'country': 'united states', 'city': 'new york'},
'raised_usd': 1.0}
item2 = {
'project': 'B',
'location': {'country': 'united kingdom', 'city': 'cambridge'},
'raised_usd': 5.0}
item3 = {
'project': 'C',
'raised_usd': 10.0}
data = [item1, item2, item3]
df = pd.DataFrame(list(data))
df
我想创建一个额外的列 'project_country',其中仅包含国家/地区信息(如果有)。我尝试了以下方法:
def get_country(location):
try:
return location['country']
except Exception:
return 'n/a'
df['project_country'] = get_country(df['location'])
df
但这不起作用:
我应该如何导入这个字段?
【问题讨论】:
-
严格来说,在 Python 中,这些是 items(属于 dict),而不是属性。回到原始 JSON 中,它们是属性。
标签: python python-3.x pandas