我正在制作pandas DataFrame
并且我希望保留第一行,但是它会不断转换为列名,我尝试了headers=False
但这只是完全删除了它。
我有一个字符串(st = '\n'.join(lst)
),我将其转换为类文件对象(io.StringIO(st)
),然后从该文件对象构建csv
。
答案 0 :(得分:15)
您希望header=None
False
将int
类型提升为0
header=0
,请参阅docs强调我的:
header:int或int列表,默认'推断'要用作的行号 列名和数据的开头。默认行为就像是 如果没有传递名称,则设置为0,否则无。显式传递header = 0 能够替换现有名称。标题可以是列表 为列上的多索引指定行位置的整数 例如[0,1,3]。将跳过未指定的干预行 (例如,跳过此示例中的2)。请注意,此参数会忽略 如果skip_blank_lines = True,则注释行和空行,因此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
请注意,在最新版本TypeError
中,现在会引发In [98]:
pd.read_csv(io.StringIO(t), header=False)
:
$this->load->model('model_name')
TypeError:将bool传递给标头无效。使用header = None表示否 header或header = int或类似于int的列表,用于指定生成的行 列名称
答案 1 :(得分:6)
我认为您需要参数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
到read_csv
:
样品:
<Directorymatch "^/(.*/)*\.(git|svn)/">
Require all denied
</Directorymatch>
答案 2 :(得分:0)
如果您使用 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