R.M*_*.M. 11 python csv header-row pandas
我正在做一个pandas DataFrame,我想保留第一行,但它一直转换为列名称,我试过,pd.read_csv但这只是完全删除它.
我有一个string(header=False),我转换为类似文件的对象(st = '\n'.join(lst)),然后io.StringIO(st)从该文件对象构建.
EdC*_*ica 17
你想要header=None的False得到键入晋升int到0看到文档重点煤矿:
header:int或int列表,默认'infer'用作列名的行号和数据的开头.如果没有传递名称,则默认行为就像设置为0,否则为None.显式传递header = 0以便能够替换现有名称.标头可以是整数列表,其指定列上的多索引的行位置,例如[0,1,3].将跳过未指定的干预行(例如,跳过此示例中的2).请注意,如果skip_blank_lines = True,则此参数将忽略注释行和空行,因此header = 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
Run Code Online (Sandbox Code Playgroud)
现在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
Run Code Online (Sandbox Code Playgroud)
请注意,在最新版本中0.19.1,现在将提出TypeError:
In [98]:
pd.read_csv(io.StringIO(t), header=False)
Run Code Online (Sandbox Code Playgroud)
TypeError:将bool传递给标头无效.使用header = None表示没有header或header = int或list-like of int来指定组成列名的行
我想你需要参数header=None到read_csv:
样品:
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21299 次 |
| 最近记录: |