我设法将字典存储在 pd.dataframe 的一列的每一行中。请问有没有一种没有for循环的方法可以一次从每个字典中的特定键中提取np.arrays?
我的小例子:
import pandas as pd
import numpy as np
d={}
d['key1']=np.array([[1, 2, 3], [4, 5, 6]])
d['key2']=np.array([1,2,3,4])
d['key3']='Mexico'
df=pd.DataFrame( index=[0,1,2,3,4,5],columns=['A'])
df.loc[0,'A'] = [d]
df.loc[1,'A'] = [d]
df.loc[2,'A'] = [d]
df.loc[3,'A'] = [d]
df.loc[4,'A'] = [d]
df.loc[5,'A'] = [d]
df
df.loc[[1,2,3],'A']
我df.loc[[1,2,3],'A']可以选择多行,因此可以选择多个 dicts,但是例如,我被阻止访问它们中的每一个的“key2”。请问有没有一种方法可以一次从所有选定行的“key2”中提取数据而无需循环?谢谢你。
编辑:避免ValueError: Incompatible indexer with Series尝试放置 dict 而不包装到数据框的元素时,可以使用.at. 然后该示例将扩展为
df.at[0,'B'] = d
df.at[1,'B'] = d
df.at[2,'B'] = d
df.at[3,'B'] = d
df.at[4,'B'] = d
df.at[5,'B'] = d
df