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
这只是将第一行全部删除,而不是将其视为数值。