pd.read_csv() 、to_csv() 之 常用參數


本文簡單介紹一下read_csv()和 to_csv()的參數,最常用的拿出來講,較少用的請轉到官方文檔看。

一.pd.read_csv()

作用:將csv文件讀入並轉化為數據框形式。

pd.read_csv(filepath_or_buffer, sep=',', delimiter=None, header='infer', names=None, index_col=None, usecols=None, squeeze=False, prefix=None, mangle_dupe_cols=True, dtype=None, engine=None, converters=None, true_values=None, false_values=None, skipinitialspace=False, skiprows=None, nrows=None, na_values=None, keep_default_na=True, na_filter=True, verbose=False, skip_blank_lines=True, parse_dates=False, infer_datetime_format=False, keep_date_col=False, date_parser=None, dayfirst=False, iterator=False, chunksize=None, compression='infer', thousands=None, decimal=b'.', lineterminator=None, quotechar='"', quoting=0, escapechar=None, comment=None, encoding=None, dialect=None, tupleize_cols=False, error_bad_lines=True, warn_bad_lines=True, skipfooter=0, skip_footer=0, doublequote=True, delim_whitespace=False, as_recarray=False, compact_ints=False, use_unsigned=False, low_memory=True, buffer_lines=None, memory_map=False, float_precision=None)

好多參數呀!
下面來看常用參數:
1.filepath_or_buffer:(這是唯一一個必須有的參數,其它都是按需求選用的
文件所在處的路徑

2.sep
指定分隔符,默認為逗號','

3.delimiter : str, default None
定界符,備選分隔符(如果指定該參數,則sep參數失效)

4.header:int or list of ints, default ‘infer’
指定哪一行作為表頭。默認設置為0(即第一行作為表頭),如果沒有表頭的話,要修改參數,設置header=None

5.names
指定列的名稱,用列表表示。一般我們沒有表頭,即header=None時,這個用來添加列名就很有用啦!

6.index_col:
指定哪一列數據作為行索引,可以是一列,也可以多列。多列的話,會看到一個分層索引

7.prefix:
給列名添加前綴。如prefix="x",會出來"x1"、"x2"、"x3"醬紙

8.nrows : int, default None
需要讀取的行數(從文件頭開始算起)

9.encoding:
亂碼的時候用這個就是了,官網文檔看看用哪個:
https://docs.python.org/3/library/codecs.html#standard-encodings

10.skiprows : list-like or integer, default None
需要忽略的行數(從文件開始處算起),或需要跳過的行號列表(從0開始)。

下面是舉栗子時間:

import pandas as pd
data = pd.read_csv(r"G:\data\Kaggle\Titanic\train.csv")
data.head()
PassengerId Survived Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Embarked
0 1 0 3 Braund, Mr. Owen Harris male 22.0 1 0 A/5 21171 7.2500 NaN S
1 2 1 1 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38.0 1 0 PC 17599 71.2833 C85 C
2 3 1 3 Heikkinen, Miss. Laina female 26.0 0 0 STON/O2. 3101282 7.9250 NaN S
3 4 1 1 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35.0 1 0 113803 53.1000 C123 S
4 5 0 3 Allen, Mr. William Henry male 35.0 0 0 373450 8.0500 NaN S
data1 = pd.read_csv(r"G:\data\Kaggle\Titanic\train.csv",header=None)   #可以看到表頭都直接當作數據在用了
data1.head()
0 1 2 3 4 5 6 7 8 9 10 11
0 PassengerId Survived Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Embarked
1 1 0 3 Braund, Mr. Owen Harris male 22 1 0 A/5 21171 7.25 NaN S
2 2 1 1 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38 1 0 PC 17599 71.2833 C85 C
3 3 1 3 Heikkinen, Miss. Laina female 26 0 0 STON/O2. 3101282 7.925 NaN S
4 4 1 1 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35 1 0 113803 53.1 C123 S
data2 = pd.read_csv(r"G:\data\Kaggle\Titanic\train.csv",index_col=["Survived","Sex"])   
data2.head()
PassengerId Pclass Name Age SibSp Parch Ticket Fare Cabin Embarked
Survived Sex
0 male 1 3 Braund, Mr. Owen Harris 22.0 1 0 A/5 21171 7.2500 NaN S
1 female 2 1 Cumings, Mrs. John Bradley (Florence Briggs Th... 38.0 1 0 PC 17599 71.2833 C85 C
female 3 3 Heikkinen, Miss. Laina 26.0 0 0 STON/O2. 3101282 7.9250 NaN S
female 4 1 Futrelle, Mrs. Jacques Heath (Lily May Peel) 35.0 1 0 113803 53.1000 C123 S
0 male 5 3 Allen, Mr. William Henry 35.0 0 0 373450 8.0500 NaN S
data3 = pd.read_csv(r"G:\data\Kaggle\Titanic\train.csv", skiprows=3, header=None)   #包括表頭的前三行被跳過了
data3.head()
0 1 2 3 4 5 6 7 8 9 10 11
0 3 1 3 Heikkinen, Miss. Laina female 26.0 0 0 STON/O2. 3101282 7.9250 NaN S
1 4 1 1 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35.0 1 0 113803 53.1000 C123 S
2 5 0 3 Allen, Mr. William Henry male 35.0 0 0 373450 8.0500 NaN S
3 6 0 3 Moran, Mr. James male NaN 0 0 330877 8.4583 NaN Q
4 7 0 1 McCarthy, Mr. Timothy J male 54.0 0 0 17463 51.8625 E46 S

二.pd.to_csv()

作用:將數據框寫入本地電腦,保存起來

先了解一下當前工作路徑

import os
father_path = os.getcwd()
father_path
'C:\\Users\\acerpc'

to_csv(path_or_buf,sep,na_rep,columns,header,index)
參數解析:
1.path_or_buf:字符串,放文件名、相對路徑、文件流等;

2.sep:字符串,分隔符,跟read_csv()的一個意思

3.na_rep:字符串,將NaN轉換為特定值

4.columns:列表,指定哪些列寫進去

5.header:默認header=0,如果沒有表頭,設置header=None,表示我沒有表頭呀!

6.index:關於索引的,默認True,寫入索引

舉栗子時間到:

import numpy as np
df = pd.DataFrame({"a":[1,2,3],
               "b":[6,np.nan,6],
               "c":[3,4,np.nan]})
df
a b c
0 1 6.0 3.0
1 2 NaN 4.0
2 3 6.0 NaN
path1 = father_path + r'\df1.csv'
df.to_csv(path1)

001.PNG

path2 = father_path + r'\df2.csv'
df.to_csv(path2,header=None)

002.PNG

path3 = father_path + r'\df3.csv'
df.to_csv(path3, columns=["a","c"],index=False)

004.PNG

path4 = father_path + r'\df4.csv'
df.to_csv(path4, na_rep=0)

111.PNG


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM