【发布时间】:2018-05-03 00:12:47
【问题描述】:
我对 pandas 有一个非常奇怪的问题 - 我正在尝试从数据框中提取一列值以进行下游分析。我编写的脚本一次迭代许多文件来执行此操作。每个文件都是使用 bam-readcounts 上的相同命令创建的,并包含 DNA 测序运行的读取深度数据。
有时,它像梦一样工作并返回我需要返回的所有内容,其他时候我收到错误消息:
TypeError: cannot do slice indexing on <class 'pandas.core.indexes.base.Index'> with these indexers [310] of <class 'int'>
该列肯定包含整数 - 为了确定,我尝试使用浮点数和 str 运行脚本。
我什至在没有更改脚本代码的情况下每隔几分钟分析同一组文件并让 pandas 返回错误消息的实例。我曾有过使用 bam-headcount 分析同时创建的两批文件的实例,并让它在一批中返回错误消息,但在另一批中不返回。
相关的代码是:
col_names = ['Col_' + str(i) for i in range(1, max_col_nr)]
df = pd.read_csv(myFile, sep = '\t', names = col_names)
df2 = df.set_index("Col_2", drop = False)
df3 = (df2.loc[310:400,"Col_4"])
US_Av = (int(round(df4.mean())))
我从来没有遇到过这样的情况,即同一段代码在运行时会改变其行为,如果有人有任何建议,我将不胜感激。这让我有点发疯。
以下示例数据供参考。这是我试图获得平均值的第 4 列。
GRIN2A 280 A 169
GRIN2A 281 C 169
GRIN2A 282 C 172
GRIN2A 283 T 171
【问题讨论】:
-
所有文件的编码都是一样的吗?它们都有相同的行尾吗?
-
是的,它们是使用 bam-headcount 同时制作的,它从基因组比对文件中创建了一个制表符分隔的数据表。我有三个文件文件夹,每个文件夹最初都使用不同的对齐器(bwa-ont、minimap2 和 ngmlr)与参考序列对齐。 nglmrs 处理得很好,但其他两个不是。事情是... minimap2s 今天早些时候处理得很好。然后他们没有,然后他们又做了,现在他们没有了。我没有以任何方式更改运行的脚本。
-
嗯...好吧,我在导致错误的代码行附近设置了一个打印(文件)。迭代器正在毫无问题地浏览一些文件,然后努力在每个文件夹中使用一对夫妇进行操作。我找不到它正在努力解决的文件之间的任何共同问题(或者实际上,在问题文件和其他文件之间)。从文件夹中删除文件可以解决问题,但我每次都会丢失几个文件的数据。有兴趣知道是否有其他人曾经有过这种情况 - 因为我有点好奇,所以现在将问题悬而未决。
-
有没有专门设置
Col_2的dtype?我在您的代码中没有看到任何地方。
标签: python python-3.x pandas