访问数据框中的列表元素

Access list element inside dataframe

我有一个数据框 (df),其中包含一个名为 venue.cateogries 的列,其中填充了如下所示的信息:

[{'icon': {'prefix': 'https://ss3.4sqi.net/img/categories_v2/arts_entertainment/performingarts_theater_',
   'suffix': '.png'},
  'id': '4bf58dd8d48988d137941735',
  'name': 'Theater',
  'pluralName': 'Theaters',
  'primary': True,
  'shortName': 'Theater'}]

数据框中大约有 100 行,我正在尝试遍历它并在每一行中获取 'pluralName' 的值。

这是我为获取它而编写的循环

category_names = df['venue.categories'].values.tolist()
names = []
for x in category_names:
  n = category_names[x][0]['pluralName']
  names.append(n)

这给我一个类型错误:列表索引必须是整数或切片,而不是列表

不需要 .values.tolist(),试试这个:

names = []
for x in df['venue.categories']:
  n = x[0]['pluralName']
  names.append(n)

除了额外的方括号,你的对象是一个字典,可以被x['dict_entry_name']调用。在这种情况下,x[0] 去掉方括号,['pluralName'] 选择条目。


示例:

ind=[0,1,2]

venue =[
[{'icon': {'prefix': 'https://ss3.4sqi.net/img/categories_v2/arts_entertainment/performingarts_theater_',
   'suffix': '.png'},
  'id': '4bf58dd8d48988d137941735',
  'name': 'Theater',
  'pluralName': 'Theaters',
  'primary': True,
  'shortName': 'Theater'}],
[{'icon': {'prefix': 'https://ss3.4sqi.net/img/categories_v2/arts_entertainment/performingarts_theater_',
   'suffix': '.png'},
  'id': '4bf58dd8d48988d137941735',
  'name': 'Mall',
  'pluralName': 'Malls',
  'primary': True,
  'shortName': 'Mall'}],
[{'icon': {'prefix': 'https://ss3.4sqi.net/img/categories_v2/arts_entertainment/performingarts_theater_',
   'suffix': '.png'},
  'id': '4bf58dd8d48988d137941735',
  'name': 'Auditorium',
  'pluralName': 'Auditoriums',
  'primary': True,
  'shortName': 'Auditorium'}]    
]

df= pd.DataFrame({'col1':ind, 'venue.catagories':venue})
names=[]
for x in df['venue.catagories']:
  n = x[0]['pluralName']
  names.append(n)

输出:

['Theaters', 'Malls', 'Auditoriums']