25

pandas DataFrameを使用して読んでいpd.read_csvます。最初の行をデータとして保持したいのですが、列名に変換され続けます。

  • 試してみheader=Falseましたが、これで完全に削除されました。

(入力データに関する注意: 文字列 ( ) をファイルのようなオブジェクト ( )st = '\n'.join(lst)に変換し、そのファイル オブジェクトから を作成します。)io.StringIO(st)csv

4

4 に答える 4

32

gets タイプを昇格させて、ドキュメントの強調鉱山を表示する必要header=Noneがあります。Falseint0

header : int または int のリスト、列名として使用するデフォルトの「推論」行番号、およびデータの開始。デフォルトの動作は、名前が渡されない場合は 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

今では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)

TypeError: bool をヘッダーに渡すことは無効です。列名を構成する行を指定するには、ヘッダーがない場合は header=None を使用し、ヘッダー=int またはリストのような int を使用します。

于 2016-11-23T16:37:53.557 に答える
9

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
于 2016-11-23T16:38:01.867 に答える