- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试读取一个文件,该文件在一行中使用两个冒号 (::) 来分隔字段,并使用管道来分隔记录。因此,数据文件 test.txt 可能如下所示:
testcol1::testcol2|testdata1::testdata2
而我的代码如下:
pd.read_table('test.txt', sep='::', lineterminator='|')
这会产生以下警告:
C:\Users\jordan\AppData\Local\Enthought\Canopy\User\lib\site-packages\ipykernel\__main__.py:4: ParserWarning: Falling back to the 'python' engine because the 'c' engine does not support regex separators; you can avoid this warning by specifying engine='python'.
以及以下“已解析”数据:
testcol1 testcol2|testdata1 testdata2
...具有三列、一个标题行和零个数据行。如果我添加 engine=c kwarg,我会得到以下错误:
ValueError: the 'c' engine does not support regex separators
似乎 Python 认为我的 :: 字段分隔符是正则表达式模式,因此迫使我使用不支持 lineterminator kwarg 的 Python 解析器.我如何告诉 pandas 使用 c 解析器,并为我的字段分隔符执行简单的字符串匹配而不是正则表达式匹配?
最佳答案
您可以使用速度更快的 c 引擎读取文件,因此您可以使用 lineterminator
参数,然后使用矢量化 str.split
拆分列和数据作为后处理步骤:
In [20]:
import pandas as pd
import io
t="""testcol1::testcol2|testdata1::testdata2"""
df = pd.read_csv(io.StringIO(t), lineterminator=r'|')
df
Out[20]:
testcol1::testcol2
0 testdata1::testdata2
In [37]:
df1 = df['testcol1::testcol2'].str.split('::', expand=True)
df1.columns = list(df.columns.str.split('::', expand=True)[0])
df1
Out[37]:
testcol1 testcol2
0 testdata1 testdata2
关于python - 设置 pandas.read_table 字段和记录分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34755185/
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
我是一名优秀的程序员,十分优秀!