Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中确定CSV文件中的列数_Python_Pandas_Csv - Fatal编程技术网

如何在Python中确定CSV文件中的列数

如何在Python中确定CSV文件中的列数,python,pandas,csv,Python,Pandas,Csv,我有一个CSV文件,开始时有2列,在某些行中有4列。我只想使用这两列,而忽略其他列 我的代码: df = pd.read_csv(path,header=None,nrows=NUM_OF_CONF_ROWS,skiprows=2) 错误: 标记数据时出错。C错误:在第17行,saw 4中预期有2个字段 数据示例: 1,2 2,4 ... 1,2,3,4 1,2 您可以使用选项usecols指示要使用的列: df = pd.read_csv(path,header=None,nro

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

我的代码:

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

标记数据时出错。C错误:在第17行,saw 4中预期有2个字段

数据示例:

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

您可以使用选项
usecols
指示要使用的列:

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

不存在这样的情况,因为在更高的索引中,该列中存在非空值,所以在开始时只有2列,然后总共变成4列。这意味着您的csv文件实际上有4列要开始

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

df = df.loc[df.columns.isin('place column names or index in a list and put it here')]
你会得到你想要的两列


希望这有帮助:)

谢谢!如果列没有标题,我如何使用它?我尝试了一个csv文件,在前两行中使用了两列,然后在没有标题的情况下使用了三列。而且选项
usecols
似乎不需要标题,它可以作为positional参数使用。运行代码时会出现什么样的错误?将文件读取为basic
df=pd.Read\u csv('your\u file.csv',header=0)
,然后使用上面的代码删除不希望包含的列。