Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.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 防止熊猫读取\u csv将第一行作为列名的标题_Python_Pandas_Csv_Header Row - Fatal编程技术网

Python 防止熊猫读取\u csv将第一行作为列名的标题

Python 防止熊猫读取\u csv将第一行作为列名的标题,python,pandas,csv,header-row,Python,Pandas,Csv,Header Row,我正在使用pd.read\u csv在pandas数据框中读取数据。我希望将第一行保留为数据,但它会不断转换为列名 我尝试了header=False,但这只是完全删除了它 (在输入数据上请注意:我有一个字符串(st='\n'.join(lst)),我将其转换为类似文件的对象(io.StringIO(st)),然后从该文件对象构建csv)您想要header=None将False类型提升为int到0请参见重点: 标题:整数或整数列表,默认“推断”行号用作 列名和数据的开头。默认行为就好像 如果没

我正在使用
pd.read\u csv
pandas数据框中读取数据。我希望将第一行保留为数据,但它会不断转换为列名

  • 我尝试了
    header=False
    ,但这只是完全删除了它

(在输入数据上请注意:我有一个字符串(
st='\n'.join(lst)
),我将其转换为类似文件的对象(
io.StringIO(st)
),然后从该文件对象构建
csv

您想要
header=None
False
类型提升为
int
0
请参见重点:

标题:整数或整数列表,默认“推断”行号用作 列名和数据的开头。默认行为就好像 如果没有传递名称,则设置为0,否则None。显式传递头=0 能够替换现有名称。标题可以是以下内容的列表: 为列上的多索引指定行位置的整数 e、 g.[0,1,3]。将跳过未指定的中间行 (例如,跳过本例中的2)。请注意,此参数忽略 如果skip_blank_lines=True,则注释行和空行,因此页眉=0 表示数据的第一行,而不是文件的第一行

您可以看到行为上的差异,首先是
header=0

In [95]:
import io
import pandas as pd
t="""a,b,c
0,1,2
3,4,5"""
pd.read_csv(io.StringIO(t), header=0)

Out[95]:
   a  b  c
0  0  1  2
1  3  4  5
现在使用
None

In [96]:
pd.read_csv(io.StringIO(t), header=None)

Out[96]:
   0  1  2
0  a  b  c
1  0  1  2
2  3  4  5
请注意,在最新版本的
0.19.1
中,这将引发
类型错误

In [98]:
pd.read_csv(io.StringIO(t), header=False)
TypeError:向标头传递布尔值无效。使用header=None表示否 header或header=int或类似int的列表,用于指定行的生成 把列名加起来


我认为您需要参数
header=None
来:

样本:

import pandas as pd
from pandas.compat import StringIO

temp=u"""a,b
2,1
1,1"""

df = pd.read_csv(StringIO(temp),header=None)
print (df)
   0  1
0  a  b
1  2  1
2  1  1

如果使用
pd.ExcelFile
读取所有excel文件表,则:

df = pd.ExcelFile("path_to_file.xlsx")    
df.sheet_names                       # Provide the sheet names in the excel file

df = df.parse(2, header=None)        # Parsing the 2nd sheet in the file with header = None
df
输出:

   0  1  
0  a  b
1  1  1
2  0  1
3  5  2

这只是将第一行全部删除,而不是将其视为数值。