首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >RangeIndex对象不可调用

RangeIndex对象不可调用
EN

Stack Overflow用户
提问于 2019-03-31 16:18:31
回答 2查看 23.3K关注 0票数 3

我正在从文本文件中读取值,并尝试查找如下所示的子字符串的索引

代码语言:javascript
运行
复制
df=pd.read_csv('break_sent.txt', index_col=False,encoding='utf-8',delimiter="\n",names=['sent'])
#print(df[:50])
#df.index = list(df.index)
df1= df[40:50]
print(len(df))
print(df1.index)
print("-------------------------------------------")
for i,row in df1.iterrows():
    string = row['sent']
    #print("string",string)
    d = df1[df1.sent.str.match(string)] # if the result includes more than 1 value then we know that substring and its matching parent string are present, then I will eliminate the substring from the dataframe
    if len(d.index > 2):
        index_val = df.index(string)
        df.drop(df.index(string),inpace=True)
        df.reset_index(level=None, drop=True, inplace=True)

当我运行这段代码时,我得到下面的错误

代码语言:javascript
运行
复制
Traceback (most recent call last):
  File "process.py", line 15, in <module>
    index_val = df.index(string)
    TypeError: 'RangeIndex' object is not callable

我尝试将范围索引转换为列表

代码语言:javascript
运行
复制
df.index = list(df.index)

但是后来我发现Int64Index是不可调用的。如何获取字符串的索引?

EN

回答 2

Stack Overflow用户

发布于 2019-07-24 21:21:03

试着改变

代码语言:javascript
运行
复制
df.drop(df.index(string),inpace=True)

代码语言:javascript
运行
复制
df.drop(index=string, inplace=True)
票数 0
EN

Stack Overflow用户

发布于 2019-09-25 03:59:06

您需要在数据帧上运行df.index,而不是在搜索字符串上运行。所以:

代码语言:javascript
运行
复制
matched_rows = df.index[df1.sent.str.match(string)]

将为您提供与字符串匹配的行。然后,您应该能够将该输出传递给df.drop

代码语言:javascript
运行
复制
if len(matched_rows) > 2:
  df.drop(matched_rows, inplace=True)
  df.reset_index(level=None, drop=True, inplace=True)

我可能没有掌握您要做的事情的确切细节,但希望这能为您指明正确的方向。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55439027

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档