Pandas提取值到列表时如何去除附带的索引信息?
解决提取值时附带索引的问题
问题出在你用了to_string()方法,它会把Series的索引和值一起转换成带格式的字符串,所以才会出现5511 apple这种带索引的结果。你可以用以下几种方式修改:
方式一:修改原有循环代码
把interest['Column_name2'].to_string()替换成下面任意一种写法,直接提取单个值:
- 用
iloc[0]定位第一个匹配的行:
for i in range(len(lstr.iloc[9])): if i == 0: interest_CM = list() interest = df_key.loc[df_key['Colum_name1'] == lstr[9][i]] interest_CM.append(interest['Column_name2'].iloc[0])
- 用
values[0]直接取数组中的第一个元素:
interest_CM.append(interest['Column_name2'].values[0])
- 用
item()提取单个标量值(仅当确定只有一个匹配结果时可用):
interest_CM.append(interest['Column_name2'].item())
方式二:用更高效的Pandas向量化操作(推荐)
Pandas不推荐用for循环遍历处理数据,你可以直接用isin()批量匹配目标值,然后一次性转成列表,代码更简洁且性能更好:
# 先把lstr第9行的目标值转成列表 target_names = lstr.iloc[9].tolist() # 批量筛选匹配行,提取Column_name2的值转成列表 interest_CM = df_key[df_key['Colum_name1'].isin(target_names)]['Column_name2'].tolist()
这样得到的interest_CM就是纯值的列表,比如['apple', 'pear'],完全不带索引。
内容的提问来源于stack exchange,提问作者Bing Shuen
相关产品推荐
相关产品推荐

