- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
是否可以制作 Pandas 。 read_csv()如果在输入文件中找不到 usecols 中指定的列,则会引发错误?例如。在下面的示例中,我希望 Pandas 引发异常,因为输入文件中没有名为“hello”的列:
import pandas as pd
# Write dummy-data
csv = r"""col1,col2,col3
one,two,three"""
with open("data.csv", "w") as out:
out.write(csv)
# Read dummy-data to DF
df = pd.read_csv("data.csv", usecols=["col1", "col2", "hello"])
print df.to_string(index=False)
输出:
col1 col2 col3
one two NaN
因此 Pandas 读取文件中的第三列名称(“col3”)并用 NaN 填充它,而不是引发“hello”不存在的错误。我希望在读取文件时收到通知,而不是在将文件内容读入内存后验证文件内容。
最佳答案
您可以只读取标题并使用 isin
测试是否存在所有预期的列名:
In [10]:
import io
csv = r"""col1,col2,col3
one,two,three"""
# Read dummy-data to DF
cols=["col1", "col2", "hello"]
df = pd.read_csv(io.StringIO(csv), usecols=cols, nrows=0)
df.columns.isin(cols)
Out[10]:
array([ True, True, False], dtype=bool)
您可以使用 all
来测试是否所有列都存在:
In [11]:
df.columns.isin(cols).all()
Out[11]:
False
此外,您可以反转掩码以找到丢失的列:
In [18]:
np.array(cols)[~df.columns.isin(cols)]
Out[18]:
array(['hello'],
dtype='<U5')
您可以将此逻辑放在用户函数中,以返回所有缺失列名的列表:
def missingCol(cols, path):
read_cols = pd.read_csv(path, usecols=cols, nrows=0).columns
return np.array(cols)[~read_cols.isin(cols)].tolist()
关于python - Pandas read_csv usecols 接受不存在的列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41100373/
我正在从 csv 读取一个表,并且只想要列的一个子集。我用于子集的列表包含我正在阅读的表中可能不存在的字段名称。例如: # contents of sample.csv: #a,b,c #1,2,3
我希望这很容易完成,但我遇到了问题,因为我从文本文件中选择列,但也想将文件名的一部分添加为最后一列或第四列。当然,我收到了“预期轴”的错误。 下面是我的代码: import pandas as pd
我有一个 csv 文件,是否可以让 usecols 在使用 read_csv 时获取除最后一列之外的所有列,而不列出所需的每一列。 例如,如果我有一个 13 列的文件,我可以执行 usecols=[0
我正在尝试循环浏览大量具有相同列名的 CSV,但其中一些具有不同的大小写。 我在我的代码中使用“usecols”,当大小写与 mycols 列表不匹配时会抛出错误。 df=pd.read_csv(fn
我正在 pandas 中读取一个没有标题的 csv 文件。我的问题是,当我在 usecols 中硬编码值并命名时,它工作正常。但是,当我从 cols 和名称列表获取输入(这些列表从 json 文件作为
我正在 pandas 中读取一个没有标题的 csv 文件。我的问题是,当我在 usecols 中硬编码值并命名时,它工作正常。但是,当我从 cols 和名称列表获取输入(这些列表从 json 文件作为
我正在尝试以下列格式加载包含 OHLC 数据的 csv 文件。 In [49]: !head '500008.csv' 03 Jan 2000,12.85,13.11,12.74,13.11,9765
我正在使用 pandas 读取休息服务中的文件。该文件很大,有 100 多列。但我只想阅读前两列。我知道我可以在 read_csv 中使用 usecols 但我想知道它究竟是如何工作的? pandas
考虑以下代码: import pandas as pd from StringIO import StringIO x=''' a,b,c,d 1,2,3,4 5,6,7,8 9,10,11,12 1
是否可以制作 Pandas 。 read_csv()如果在输入文件中找不到 usecols 中指定的列,则会引发错误?例如。在下面的示例中,我希望 Pandas 引发异常,因为输入文件中没有名为“he
我收到一个错误: ValueError: Usecols do not match columns, columns expected but not found: ['Search Query']
这是我的问题的重新措辞版本,希望更有意义: 当使用带有隐式索引的 read_csv 时(即文件中的第一列没有标题),一切正常,我得到一个数据帧,其索引是文件中的第一列 -隐式索引列。 但是,如果我将
我正在尝试使用 python pandas read_table 函数从我的文件中读取一定范围的非连续列。为此,我正在尝试: df=pd.read_table('genes.fpkm_tracking
当我使用 usecols 过滤列并使用多个索引时,pandas.read_csv 无法正确输入 csv 文件。 import pandas as pd csv = r"""dummy,date,loc
我在从 Excel 文件读取数据时遇到一些问题。Excel 文件包含带有 unicode 字符的列名称。 由于一些自动化原因,我需要将 usecols 参数传递给 pandas.read_excel
我正在尝试将一些列从导入的 csv 文件复制到 selected.csv 但它给了我这个错误: 'ValueError: Usecols do not match columns, columns e
我有一个包含 50 列数据的 csv 文件。我正在使用 Pandas read_csv 函数提取这些列的子集,使用 usecols 参数来选择我想要的列: cols_to_use = [0,1,5,1
我正在尝试将数据从 Excel 文件导入 pandas,但在输入以下内容时出现错误: energy = pd.read_excel('Indicators.xls',
我想在用 pandas 解析一些数据时只选择 2 列。 pd.read_table的帮助提到了一个usecols选项,这似乎正是我想要的: usecols : array-like, default
以下按预期工作。 190栏全部读入。 pd.read_csv("data.csv", header=None, names=columns,
我是一名优秀的程序员,十分优秀!