【问题标题】:How to determine the number of columns in a CSV file in Python如何在 Python 中确定 CSV 文件中的列数
【发布时间】:2019-07-09 14:18:42
【问题描述】:

我有一个 CSV 文件,该文件一开始有 2 列,而在某些行中,有 4 列。我只想使用 2 列而忽略其他列。

我的代码:

df = pd.read_csv(path,header=None,nrows=NUM_OF_CONF_ROWS,skiprows=2)

错误:

标记数据时出错。 C 错误:预计第 17 行中有 2 个字段,看到 4

数据示例:

 1,2
 2,4
 ...
 1,2,3,4
 1,2

【问题讨论】:

    标签: python pandas csv


    【解决方案1】:

    您可以使用选项usecols 来指示您要使用哪些列:

    df = pd.read_csv(path,header=None,nrows=NUM_OF_CONF_ROWS,skiprows=2, usecols = [0 1])
    

    【讨论】:

    • 谢谢!如果列没有标题,我该如何使用它?
    • 我尝试了一个 csv 文件,其中前两行使用了两列,然后三列没有标题。似乎usecols 选项不需要标题,它作为位置参数工作。运行代码时遇到什么样的错误?
    【解决方案2】:

    不存在一开始只有 2 列并变成 4 列的情况,因为在更高索引上该列中存在非空值。这意味着您的 csv 文件确实有 4 列开始。

    如果您只需要前 2 列,则可以使用 df.columns.isin() 方法“删除”其余列,例如:

    df = df.loc[df.columns.isin('place column names or index in a list and put it here')]
    

    你会得到你想要的 2 列。

    希望这会有所帮助:))

    【讨论】:

    • 将您的文件读取为基本df = pd.read_csv('your_file.csv', header = 0),然后使用上面的代码删除您不想包含的任何列。
    猜你喜欢
    • 1970-01-01
    • 2019-11-16
    • 1970-01-01
    • 2010-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多