これは最初のオリジナル276です
完全なマップ
最初の2つの部分:
CSVファイルを読み込み、Pythonのチュートリアルトピックを作成する(1)
CSVファイルを読み込み、Pythonのチュートリアルトピックを作成する(2)
2.5時間関連
parse_dates
時間特定の種類としてインポートではなく、このパラメータ設定のインポートではなく、導入式後の時間のためであれば、次のように:
In [5]: df = pd.read_csv('test.csv',sep='\s+',header=0,na_values=['#'])
In [6]: df
Out[6]:
id id.1 age label date
0 1 'gz' 10 YES 1989-12-1
1 2 'lh' 12 NO NaN
In [7]: df.dtypes
Out[7]:
id int64
id.1 object
age int64
label object
date object
dtype: object
タイプオブジェクトのこの日付コラムで、時間型に方法を見つけます:
In [8]: df = pd.read_csv('test.csv',sep='\s+',header=0,na_values=['#'],parse_dat
...: es=['date'])
In [9]: df
Out[9]:
id id.1 age label date
0 1 'gz' 10 YES 1989-12-01
1 2 'lh' 12 NO NaT
In [11]: df.dtypes
Out[11]:
id int64
id.1 object
age int64
label object
date datetime64[ns]
このとき、datetime型。
date_parser
使用のタイプをカスタマイズするdate_parser一定時間パラメータは、以下に詳細にまとめられています。当社のデータファイル:
In [82]: cat test.csv
id id age label date
1 'gz' 10 YES 26-MAY-2019
2 'lh' 12 NO 30-MAR-2019
次のように時間は、標準形式の日付に変換されている場合:
In [83]: df = pd.read_csv('test.csv',sep='\s+',parse_dates=['date'],date_parser=
...: lambda dates: pd.datetime.strptime(dates,'%d-%b-%Y'))
In [84]: df
Out[84]:
id id.1 age label date
0 1 'gz' 10 YES 2019-05-26
1 2 'lh' 12 NO 2019-03-30
以下のように、timetupleフォーマットへ:
In [85]: df = pd.read_csv('test.csv',sep='\s+',parse_dates=['date'],date_parser=
...: lambda dates: pd.datetime.strptime(dates,'%d-%b-%Y').timetuple())
In [86]: df
Out[86]:
id id.1 age label date
0 1 'gz' 10 YES (2019, 5, 26, 0, 0, 0, 6, 146, -1)
1 2 'lh' 12 NO (2019, 3, 30, 0, 0, 0, 5, 89, -1)
infer_datetime_format
、論理値FALSEデフォルトにinfer_datetime_formatパラメータのデフォルト
可能変換、変換方法および解像度あれば利用できる真とparse_datesに設定すると、パンダは、date型を変換しようとします。いくつかのケースでは5〜10倍高速化。
ブロック2.6を読みます
高速メモリに読み込むことにより、
イテレータ
バリューブールは、falseデフォルト
ブロックによるファイルブロックへTextFileReaderオブジェクトを返します。
このファイルが大きい場合、メモリは順次処理、バッチで読み、その後、すべてのデータファイルを保持することはできません。次のプレゼンテーションを行うために、我々は、データ・フィールド、2行の合計を提出します。
最初の行を読んで、get_chunkパラメータ1は、リード線を示します
In [105]: chunk = pd.read_csv('test.csv',sep='\s+',iterator=True)
In [106]: chunk.get_chunk(1)
Out[106]:
id id.1 age label date date1
0 1 'gz' 10 YES 26-MAY-2019 4-OCT-2017
次の行を読んで、
In [107]: chunk.get_chunk(1)
Out[107]:
id id.1 age label date date1
1 2 'lh' 12 NO 30-MAR-2019 2-SEP-2018
もう一度読んで、ファイルの末尾にこの時間は、異常なメンバーシップを報告しました
In [108]: chunk.get_chunk(1)
StopIteration Traceback (most recent call last)
<ipython-input-108-f294b07af62c> in <module>
----> 1 chunk.get_chunk(1)
チャンク
チャンクサイズ:int型、デフォルトなし
サイズのファイルブロック
2.7の参照、圧縮、ファイル形式
圧縮
参数取值为 {‘infer’, ‘gzip’, ‘bz2’, ‘zip’, ‘xz’, None}, default ‘infer’
直接使用磁盘上的压缩文件。如果使用infer参数,则使用 gzip, bz2, zip或者解压文件名中以‘.gz’, ‘.bz2’, ‘.zip’, or ‘xz’这些为后缀的文件,否则不解压。
如果使用zip,那么ZIP包中国必须只包含一个文件。设置为None则不解压。
In [119]: df = pd.read_csv('test.zip',sep='\s+',compression='zip')
In [120]: df
Out[120]:
id id.1 age label date date1
0 1 'gz' 10 YES 26-MAY-2019 4-OCT-2017
1 2 'lh' 12 NO 30-MAR-2019 2-SEP-2018
thousands
thousands : str, default None
千分位分割符,如“,”或者“."
如下,显示数据文件 test.csv
In [122]: cat test.csv
id id age label date
1 'gz' 10 YES 1,090,001
2 'lh' 12 NO 20,010
其中date列为带千分位分隔符的整形,如果我们不显示指定thousands参数,则读入后的date列类型为object. 如下:
In [125]: df = pd.read_csv('test.csv',sep='\s+')
In [126]: df
Out[126]:
id id.1 age label date
0 1 'gz' 10 YES 1,090,001
1 2 'lh' 12 NO 20,010
In [127]: df.dtypes
Out[127]:
id int64
id.1 object
age int64
label object
date object
dtype: object
如果显示指定thousands为,
,则读入后date列显示为正常的整型。
In [128]: df = pd.read_csv('test.csv',sep='\s+',thousands=',')
In [132]: df
Out[132]:
id id.1 age label date
0 1 'gz' 10 YES 1090001
1 2 'lh' 12 NO 20010
In [130]: df['date'].dtypes
Out[130]: dtype('int64')
decimal
decimal : str, default ‘.’
字符中的小数点 (例如:欧洲数据使用’,‘). 类别上面的thousands参数。
float_precision
float_precision : string, default None
指定c引擎的浮点数转化器,默认为普通,参数可能取值还包括:high-precision, round_trip.
lineterminator
lineterminator: str (length 1), default None
行分割符,只在C解析器下使用。
quotechar
quotechar: str (length 1), optional
引号,用作标识开始和解释的字符,引号内的分割符将被忽略。
quoting
quoting : int or csv.QUOTE_* instance, default 0
控制csv中的引号常量。可选 QUOTE_MINIMAL (0), QUOTE_ALL (1), QUOTE_NONNUMERIC (2) or QUOTE_NONE (3)
doublequote : boolean, default True
双引号,当单引号已经被定义,并且quoting 参数不是QUOTE_NONE的时候,使用双引号表示引号内的元素作为一个元素使用。
escapechar
escapechar: str (length 1), default None
当quoting 为QUOTE_NONE时,指定一个字符使的不受分隔符限值。
comment
comment: str, default None
标识着多余的行不被解析。如果该字符出现在行首,这一行将被全部忽略。
这个参数只能是一个字符,空行(就像skip_blank_lines=True),注释行被header和skiprows忽略一样。例如,如果指定comment='#' 解析‘#empty\na,b,c\n1,2,3’ 以header=0 那么返回结果将是以’a,b,c'作为header。
encoding
encoding: str, default None
指定字符集类型,通常指定为'utf-8'. List of Python standard encodings
dialect
dialect: str or csv.Dialect instance, default None
如果没有指定特定的语言,如果sep大于一个字符则忽略。具体查看csv.Dialect 文档
error_bad_lines
error_bad_lines:ブール値、デフォルトはTrue
行があれば包含太多的列
、デフォルトのデータフレームを返しませんfalseに設定されている場合、それはなります该行剔除(只能在C解析器下使用)
。
(私たちのデータファイルのデフォルトの区切り文字は二つの空間であるため、二つのスペースで)私たちは、セル値のtest.CSVファイルを意図的に変更します
In [148]: cat test.csv
id id age label date
1 'gz' 10.8 YES 1,090,001
2 'lh' 12.31 NO O 20,010
この場合、データファイルを読み込み、例外が報告されます。
ParserError: Error tokenizing data. C error: Expected 5 fields in line 3, saw 6
小さなサンプルサイズを読み込む場合、このエラーはすぐに発見されたが、大きなデータファイルを読み込むときに一時間、このようなエラーの出現の最後の数行を読めば、それは吸うです!だから、安全側は、我々は一般的にerror_bad_linesがTrueに設定セクションの下warn_bad_linesを使用している間、この行を削除する、つまり、Falseに設定され、印刷は、この行を拒否します。
In [150]: df = pd.read_csv('test.csv',sep='\s+',error_bad_lines=False)
b'Skipping line 3: expected 5 fields, saw 6\n'
In [151]: df
Out[151]:
id id.1 age label date
0 1 'gz' 10.8 YES 1,090,001
3行目をスキップ:出力アラーム情報を見ることができる5つのフィールドを期待し、6を見て
warn_bad_lines
warn_bad_lines:ブール値、デフォルトはTrue
error_bad_lines = Falseを、そしてwarn_bad_lines = Trueの場合、すべての「悪い行が」出力(のみCパーサで利用可能)になります。
パラメータtupleize_cols、お勧めできません。
これらは、すべてのパラメータであり、対応するプレゼンテーションcsvファイルを読み込みます。
以下のための話題Pythonコミュニティとアルゴリズム再現し、生産公共の数は、ソースを明記してください。
Pythonとアルゴリズムコミュニティ