Python 数据帧中的For循环

Python 数据帧中的For循环,python,pandas,dataframe,Python,Pandas,Dataframe,我在pandas中有以下数据帧: src_ch_id;src_ch_name;src_ch_desc;src_table_name aa;q1;11;DataTable_4 bb;q2;22;DataTable_4 cc;q3;33;DataTable_4 使用这个数据帧,我将为数据库的每一行创建一个insert。对于测试,我将打印参数 for index in channeldef_data_df: src_ch_id = channeldef_data_df.iloc[[in

我在pandas中有以下数据帧:

src_ch_id;src_ch_name;src_ch_desc;src_table_name
aa;q1;11;DataTable_4
bb;q2;22;DataTable_4
cc;q3;33;DataTable_4
使用这个数据帧,我将为数据库的每一行创建一个insert。对于测试,我将打印参数

for index in channeldef_data_df:    
   src_ch_id = channeldef_data_df.iloc[[index], channeldef_data_df.columns.get_loc('src_ch_id')]
   print('--')
   print(src_ch_id)
我给出了以下错误:

”。iloc需要数字索引器,获取['src\u ch\u id'”

我认为问题在于代码中的
[index]
部分。循环中的错误是什么?

用于以(索引、序列)对的形式迭代数据帧行。
与索引类似,channeldef_data_df.iterrows()中的行:

>>对于索引,在channeldef_data_df.iterrows()中:
...     src_ch_id=channeldef_data_df.iloc[[index],channeldef_data_df.columns.get_loc('src_ch_id'))
...     打印(src_ch_id)
...
0 aa
名称:src_chu id,数据类型:object
1 bb
名称:src_chu id,数据类型:object
2毫升
名称:src_chu id,数据类型:object
您正在使用
作为channeldef_data_df:
中的索引,它将只返回代码中的列名

>>对于channeldef_data_df中的索引:
...     打印(索引)
...
src_Chu_id
src_Chu_名称
src_Chu_desc
src_表_名称

如果您只想提取src\u ch\u id并打印,可能您可以使用
itertuples()


通过这种方式,您可以为每一行获取src_ch_id

作为旁白,为什么不能批量追加到数据库中?逐行的速度相当慢。数据库的表不完全相同,有时源中的数据在不同的表中,但在目标中,它们应该在一个表中。@Algha很高兴这对您有所帮助。若你们觉得它有用,请投票表决,任何你们认为正确的解决方案,然后接受答案。
for index in channeldef_data_df.itertuples():    
    src_ch_id = index.src_ch_id
    print('--')
    print(src_ch_id)