Python 在pandas中迭代数据帧的问题

Python 在pandas中迭代数据帧的问题,python,pandas,dataframe,Python,Pandas,Dataframe,我正在使用列表的内容填写数据框,例如: desc_prep=[['aesthet', 'abod'], [['arb', 'abod'], ['forest', 'abod']]] col_names = ['desc_name','desc_avg_vector'] df_desc_prep = pd.DataFrame(columns=col_names) df_desc_prep['desc_name']=desc_prep 此时,我得到以下信息:

我正在使用列表的内容填写数据框,例如:

desc_prep=[['aesthet', 'abod'], [['arb', 'abod'], ['forest', 'abod']]]

col_names =  ['desc_name','desc_avg_vector']
df_desc_prep = pd.DataFrame(columns=col_names)    
df_desc_prep['desc_name']=desc_prep
此时,我得到以下信息:

                         desc_name
0                [aesthet, abod]
1  [[arb, abod], [forest, abod]]
使用iteritems迭代dataframe以获取列名称和内容为序列的元组时:

for index, value in df_desc_prep.iteritems():
    print("index: ", index)#-->index:  desc_name
    print("value: ", value)#-->value:  0                  [aesthet, abod]
    print("value[0]:", value[0])#['aesthet', 'abod']
    print("value[1]:", value[1])#[['arb', 'abod'], ['forest', 'abod']]
    if isinstance(value[0], list):#->value[0]:  ['aesthet', 'abod']
使用iterrows()迭代以获取每行的序列时:

for index, value in df_desc_prep.iterrows():
    print("index: ", index)#-->index:  0
    print("value: ", value)#-->value:  desc_name    [aesthet, abod]
    if isinstance(value[0], list):#-->value[0]:  ['aesthet', 'abod'], value[1]: IndexError: index out of bounds
我希望得到值[0]为
aestet
,值[1]为
abod
。相反,当获取值[1]时,我得到的是
索引器:索引超出范围

当我在
['aesett',abod']
值[0]=['arb',abod']]上进行迭代时,我如何获得在数据帧上进行迭代并获得
值[0]=aesett
的行为

...
for index, value in df_desc_prep.iterrows():
    print(value[0][0])
    print(value[0][1])

aesthet
abod
['arb', 'abod']
['forest', 'abod']


做得好!!!这是一种魅力。一个问题,为什么即使是一个列(一个系列)的数据帧,也必须指明列的名称?例如,
col\u names=['desc\u name']df\u desc\u prep=pd.DataFrame(columns=col\u names)
@JuanPerez,这样您就可以看到,如果有更多的列,我们也可以访问column\u name元素。
for index, value in df_desc_prep.iterrows():
    print(value['desc_name'][0])
    print(value['desc_name'][1])

aesthet
abod
['arb', 'abod']
['forest', 'abod']