使用loc切片时如何去除返回结果中的索引与列名?
解决方法
你的问题出在loc切片返回的是DataFrame对象(因为你用了["Name"]列列表),直接插入文本框会显示DataFrame的完整格式(包含索引、列名)。需要提取出具体的字符串值,修改方式如下:
核心修改
把获取name的代码改成直接提取单个值:
ID = Entry6.get() follow_up_DF = pd.read_csv('file.csv') # 找到匹配行的Name列,返回Series而非DataFrame match_row = follow_up_DF.loc[follow_up_DF["Email ID"] == int(ID), "Name"] # 先判断是否有匹配结果,避免索引错误 if not match_row.empty: name = match_row.iloc[0] else: name = "未找到匹配名称" subject=Text(home, height=1) subject.insert(1.0, name) subject.place(x=0, y=400)
关键说明
- 去掉
Name外的方括号,loc会返回Series而非DataFrame,避免带列名和索引的格式 - 用
.iloc[0]提取Series的第一个元素,得到纯字符串的名称值 - 增加
match_row.empty判断,防止输入不存在的ID时触发索引越界错误
内容的提问来源于stack exchange,提问作者sw4ps
相关产品推荐
相关产品推荐

