使用熊猫更新excel表格时出现一个问题。
我在Excel工作表中有一列名为'item'
的列,并在python中列出了一些字符串。
我正在遍历每个列表项以检查excel工作表的item
列中是否存在列表字符串,如果存在,我将更新brand_name
这是我的代码
for index_label, row_series in new_df.iterrows():
for brnd in ['brand1','brand2','brand3']:
try:
if brnd in row_series['item']:
new_df.at[index_label,'brand_name'] = brnd
else:
new_df.at[index_label,'brand_name'] = ''
except:
现在,这里的问题不是针对所有品牌进行更新。我只能在excel的brand3
列下看到brand_name
的数据,而在brand_name列中却看不到brand1
和brand2
的任何地方。但是,我发现Excel工作表的brand2
列中存在brand3
和item
的子字符串。
请帮助我,为什么不是所有品牌都列在列中,为什么只有最后一个。
关于Excel工作表的信息。
item , brand_name
some_brand1_two_like_thi
some_brand2_two_like_thi
some_like_this_brand1
brand3 two_like_thi
brand3 two like thi
答案 0 :(得分:0)
您正在将brand3的if / else块的结果写在brand1和brand2的结果上。尝试遵循您编写的循环:
在if / else语句的成功部分之后添加中断应该足够了:
if brnd in row_series['item']:
new_df.at[index_label,'brand_name'] = brnd
break