- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我想在用 pandas 解析一些数据时只选择 2 列。
pd.read_table的帮助提到了一个usecols
选项,这似乎正是我想要的:
usecols : array-like, default None
Return a subset of the columns. All elements in this array must either
be positional (i.e. integer indices into the document columns) or strings
that correspond to column names provided either by the user in `names` or
inferred from the document header row(s). For example, a valid `usecols`
parameter would be [0, 1, 2] or ['foo', 'bar', 'baz']. Using this parameter
results in much faster parsing time and lower memory usage.
读取后,我的数据似乎包含编号为 0 到 6 的列:
In [338]: pd.read_table("../RNA_Seq_analyses/mapping_worm_number_tests/hisat2/mapped_C_elegans/intersect_count/W100_1_on_C_elegans/protein_coding_fwd_counts.txt", index_
...: col=3, header=None)[:3]
Out[338]:
0 1 2 4 5 6
3
WBGene00022277 I 4118 10230 - . 83
WBGene00022276 I 10412 16842 + . 230
WBGene00022278 I 17482 26781 - . 303
但是当我尝试仅保留索引(第 3 列)和最后一个索引(第 6 列)时,出现以下错误:
In [339]: pd.read_table("../RNA_Seq_analyses/mapping_worm_number_tests/hisat2/mapped_C_elegans/intersect_count/W100_1_on_C_elegans/protein_coding_fwd_counts.txt", index_
...: col=3, header=None, usecols=(3, 6))[:3]
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-339-279bef505f16> in <module>()
----> 1 pd.read_table("../RNA_Seq_analyses/mapping_worm_number_tests/hisat2/mapped_C_elegans/intersect_count/W100_1_on_C_elegans/protein_coding_fwd_counts.txt", index_col=3, header=None, usecols=(3, 6))[:3]
/home/bli/.local/lib/python3.6/site-packages/pandas/io/parsers.py in parser_f(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, dayfirst, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, escapechar, comment, encoding, dialect, tupleize_cols, error_bad_lines, warn_bad_lines, skipfooter, skip_footer, doublequote, delim_whitespace, as_recarray, compact_ints, use_unsigned, low_memory, buffer_lines, memory_map, float_precision)
644 delim_whitespace=delim_whitespace,
645 as_recarray=as_recarray,
--> 646 warn_bad_lines=warn_bad_lines,
647 error_bad_lines=error_bad_lines,
648 low_memory=low_memory,
/home/bli/.local/lib/python3.6/site-packages/pandas/io/parsers.py in _read(filepath_or_buffer, kwds)
387 kwds['encoding'] = encoding
388
--> 389 compression = kwds.get('compression')
390 compression = _infer_compression(filepath_or_buffer, compression)
391 filepath_or_buffer, _, compression = get_filepath_or_buffer(
/home/bli/.local/lib/python3.6/site-packages/pandas/io/parsers.py in __init__(self, f, engine, **kwds)
728
729 if dialect_val != provided:
--> 730 conflict_msgs.append((
731 "Conflicting values for '{param}': '{val}' was "
732 "provided, but the dialect specifies '{diaval}'. "
/home/bli/.local/lib/python3.6/site-packages/pandas/io/parsers.py in _make_engine(self, engine)
921 for arg in _deprecated_args:
922 parser_default = _c_parser_defaults[arg]
--> 923 msg = ("The '{arg}' argument has been deprecated "
924 "and will be removed in a future version."
925 .format(arg=arg))
/home/bli/.local/lib/python3.6/site-packages/pandas/io/parsers.py in __init__(self, src, **kwds)
1445 cast_type = dtypes
1446
-> 1447 if self.na_filter:
1448 col_na_values, col_na_fvalues = _get_na_values(
1449 c, na_values, na_fvalues)
/home/bli/.local/lib/python3.6/site-packages/pandas/io/parsers.py in _clean_index_names(columns, index_col)
2812 msg = ('Expected %d fields in line %d, saw %d' %
2813 (col_len, row_num + 1, actual_len))
-> 2814 if len(self.delimiter) > 1 and self.quoting != csv.QUOTE_NONE:
2815 # see gh-13374
2816 reason = ('Error could possibly be due to quotes being '
IndexError: list index out of range
我在另一种情况下成功使用了 usecols
选项,但保留了原始文件中的一些 header 。
是什么导致了这里的问题?
header=None
显然不是问题我可以解析不同格式的文件,而不保留 header ,并且 usecols
选项有效:
In [361]: pd.read_table("../RNA_Seq_analyses/mapping_worm_number_tests/hisat2/mapped_C_elegans/feature_count/W100_1_on_C_elegans/protein_coding_fwd_counts.txt", skiprows
...: =2, index_col=0, header=None, usecols=[0, 6])[:3]
Out[361]:
6
0
WBGene00022277 72
WBGene00022276 222
WBGene00022278 302
最佳答案
我看起来它与index_col
有关
读取文件后尝试设置索引:
path = "../RNA_Seq_analyses/mapping_worm_number_tests/hisat2/mapped_C_elegans/intersect_count/W100_1_on_C_elegans/protein_coding_fwd_counts.txt"
df = pd.read_table(path, header=None, usecols=(3, 6)).set_index(3)[:3]
显然,在减少列后正在使用index_col
。您选择两列,然后尝试选择第三列作为索引。
path = "../RNA_Seq_analyses/mapping_worm_number_tests/hisat2/mapped_C_elegans/intersect_count/W100_1_on_C_elegans/protein_coding_fwd_counts.txt"
df = pd.read_table(path, header=None, usecols=(3, 6), index_col=0)[:3]
关于python - pandas read_table 中的 usecols 结果为 "list index out of range",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45943371/
pandas 是否可以读取包含续行的文本文件? 例如,假设我有一个文本文件“read_table.txt”,它看起来像这样: col1, col2 a, a string b, a very long
我正在使用文本文件 (ClassTest.txt) 和 pandas。该文本文件有 3 个制表符分隔的列:标题、说明和类别 - 标题和说明是普通字符串,类别是(非零)整数。 我收集的数据如下: dat
有没有办法并行调用 read_table()?就我而言,由于日期解析,它受到 CPU 限制。我看不出有什么方法可以通过阅读文档来实现这一目标。唯一想到的是分割输入文件,并行调用 read_table,
假设我有一个 .dat 文件,filename.dat,我希望将其读入 Pandas Dataframe: import pandas as pd df = pd.read_table('filena
Pandas read_table 函数在我尝试读取的文件中缺少一些行,但我无法找出原因。 import pandas as pd import numpy as np filename = "wha
我正在将以下数组读入 pandas 数据帧: 1 0.140000 0.180000 0.200000 2 0.240000 0.320000 0.320000 3 0.340000 0.430000
我正在尝试将制表符分隔的文本文件读取到数据框中。 这是文件在 Excel 中的样子: CALENDAR_DATE ORDER_NUMBER INVOICE_NUMBER TRANSACTI
我有以下输入文件: 2012,10,3,AAPL,BUY,200 2012,12,5,AAPL,SELL,200 如何将其读入具有以下列的 pandas 数据框: index: default int
我这里有个小问题。我有一个 txt 文件,其中包含以下形式的行(比方说第 1 行): id1-a1-b1-c1 我想使用 pandas 将其加载到数据框中,索引为 id,列名称为“A”、“B”、“C”
我正在对 .txt 文件执行基本的 pd.read_table 操作。第一列是尖点列表。 cusip "65248E10" 被读取为数字 65248E10 = 652480000000000(E10
总的来说,我对 Python 还很陌生,但我正在尝试制作一个脚本,从文件夹中的某些文件中获取数据并将其放入 Excel 电子表格中。 我的代码将在指定的文件夹中找到我想要的文件类型,然后创建包含完整文
我正在尝试使用 read_table 函数将空格分隔的表格(下面的示例)读取到 pandas 数据框中。 1 0.00000E+00-7.52896E-04 0.00000E+00 0.00000E
我正在尝试读取一个文件,该文件在一行中使用两个冒号 (::) 来分隔字段,并使用管道来分隔记录。因此,数据文件 test.txt 可能如下所示: testcol1::testcol2|testdata
在指定重复列名的同时读取表格时 - 假设有两个不同的名称 - pandas 0.16.1 将一遍又一遍地复制数据的最后两列。 In [1]: df = pd.read_table('Dataset
我正在尝试使用 pandas read_table 读取 tsv 文件,但由于某种原因,第一行已从文件中删除。 test.pln(文件为here): Class index 0 0 0 1
我正在尝试使用 python pandas read_table 函数从我的文件中读取一定范围的非连续列。为此,我正在尝试: df=pd.read_table('genes.fpkm_tracking
我的数据有两个以天为单位的日期字段,但在数千万行中,某些行存在错误。为了速度和内存限制,我宁愿在读入数据后立即将列转换为日期时间,但我似乎无法强制该过程离开 NaT对于无效的字符串而不是引发错误。我可
我正在尝试读取一些人口数据作为学习 pandas 的练习: >>> countries = pd.read_table('country_data.txt',
我 checkout read_table with stringIO and messy file但它有一些我无法复制的东西,比如这个原始对象。无论如何,我想将一个表写入 StringIO 文件对象
我想在用 pandas 解析一些数据时只选择 2 列。 pd.read_table的帮助提到了一个usecols选项,这似乎正是我想要的: usecols : array-like, default
我是一名优秀的程序员,十分优秀!