You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法对Python Pandas DataFrame导出的列表使用.find()查找字符x位置

问题根因
  • dbc.values返回的是二维NumPy数组,ids[0]是包含单个元素的数组对象,不是原生字符串,所以无法调用字符串专属的find方法。
  • 手动循环处理效率低,pandas内置了向量化的字符串处理方法,完全不需要自己写循环实现需求。
最优解决方案(无需手动循环)

直接用pandas的str处理方法按第一个x分割,取后半段即可,完整代码如下:

import pandas as pd

# 读取文件时直接指定读取第12列(注意pandas列索引从0开始,确认你要的列索引是否正确)
dbc = pd.read_csv(r'file1', usecols=[12])
target_col = dbc.columns[0]

# 按第一个x分割,取分割后的后半段,n=1表示只分割1次,避免后面的x被截断
dbc[target_col] = dbc[target_col].str.split('x', n=1).str[-1]

# 打印前5行验证结果
print(dbc.head())
如果你坚持要用find方法手动实现

需要先把列内容转为原生字符串列表再处理:

import pandas as pd

dbc = pd.read_csv(r'file1', usecols=[12])
target_col = dbc.columns[0]
# 转为字符串列表
str_list = dbc[target_col].astype(str).tolist()
result = []
for s in str_list:
    x_index = s.find('x')
    # 你已确认每条都有x,不需要处理找不到的情况
    # 如果要保留x,改成s[x_index:]即可
    result.append(s[x_index+1:])
# 结果写回DataFrame
dbc[target_col] = result
注意事项
  • 如果列中存在非字符串类型的值,调用str方法前先加.astype(str)统一转成字符串,避免报错。
  • 如果需要保留x本身,分割后取数逻辑对应调整即可。

内容的提问来源于stack exchange,提问作者paidsponsor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 14:12:05