Python 数据帧中的For循环
我在pandas中有以下数据帧: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
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)