當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Python Pandas read_csv方法用法及代碼示例

Pandas 的 read_csv(~) 方法讀取文件,並將其內容解析為 DataFrame。

這頭猛獁象有 40 多個參數,但隻需要一個。

參數

1.filepath_or_buffer | stringpath objectfile-like object

您要讀取的文件的路徑。

2. sep | string | optional

分隔數據的分隔符。如果設置為 None ,並且您正在使用 Python 解析引擎(請參閱下麵的 engine 參數),則該方法將嘗試從文件中推斷分隔符。默認情況下,sep=","

3. header | intlist<int> | optional

代表標題的行號。如果傳遞列表,則生成的DataFrame將是多索引的。默認情況下, head=0 ,這意味著第一行將被視為列標簽。請注意, header 不考慮注釋和空行(當 skip_blank_lines=True 時),因此 head=0 不一定是文件的第一行。

4. names | array-like<string> | optional

要使用的列標簽。重複的標簽將導致錯誤。

注意

假設您的文件包含標題行(即列標簽),但您希望使用其他一些列標簽。您可以通過顯式設置 header=0 ,然後指定 names 參數來完成此操作。

5. index_col | intstringsequence<int> | optional

文件中的整數索引或列標簽,用作生成的 DataFrame 的行標簽。默認情況下,index_col=None

6. usecols | array-like<int>array-like<string>function | optional

要包含在生成的 DataFrame 中的整數索引或列標簽。如果提供了函數,則該函數接受列標簽作為參數,並返回一個布爾值,指示是否包含該列。

默認情況下,包含所有列。

7. squeeze | boolean | optional

如果生成的 DataFrame 僅包含單個列,是否返回 Series。默認情況下,squeeze=False

8. prefix | string | optional

如果未提供 header,則附加到列名稱的前綴。例如, prefix="A" 意味著列標簽可能是 "A0""A1" 等。默認情況下不添加前綴。

9. mangle_dupe_cols | boolean | optional

是否將數字後綴附加到具有重複標簽的列。默認情況下, mangle_dupe_cols=True ,這意味著當列標簽衝突時不會覆蓋,而是將後綴附加到列標簽上。例如,如果有 2 個列標簽 "A""A" ,則第二個將稱為 "A.1"

警告

顯然,mangle_dupe_cols=False 尚未得到支持,盡管這沒有正式記錄。

10.dtype | stringtypedict<string, string||type> | optional

用於列的數據類型。如果提供了 dict,則 key 將是列標簽,value 將是其所需的類型。

11.engine | string | optional

是否使用C或Python解析引擎。允許的值為 "c""python"

與 Python 對應的引擎相比,C 解析引擎速度更快,但函數較少。例如,Python 解析引擎將能夠自動從文件中推斷出分隔符,而 C 解析引擎則不能。

12.converters | dict<string, function> | optional

將應用於列的函數。鍵是要應用函數的列的標簽。默認情況下,不應用任何函數。

13.true_values | list | optional

將在生成的 DataFrame 中評估為 True 的值列表。

14.false_values | list | optional

將在生成的 DataFrame 中評估為 False 的值列表。

15.skipinitialspace | boolean | optional

官方文檔聲稱該參數指定是否跳過分隔符後麵的空格。但是,我們廣泛測試了此參數,發現無論您在此處設置什麽,值的所有前導和尾隨空格(包括列和行標簽)都會被刪除。如果您有什麽見解,歡迎與我們交流!默認情況下,skipinitialspace=False

16.skiprows | list-likeintfunction | optional

要跳過的行號(以整數索引表示)。例如,skiprows=1 將跳過文件中的第二行。如果提供了函數,則該函數接受行標簽作為參數,並返回一個布爾值,指示是否跳過該行。

17.skipfooter | int | optional

從底部開始忽略的行數。這僅在 engine="python" 時實現。默認情況下,skipfooter=0

18.nrows | int | optional

要包含的行數。這不包括列標簽的行。默認情況下,包含所有行。

19.na_value | scalarstringlist-likedict | optional

將被解釋為 NaN 的附加值。如果提供了dict,則關鍵是要考慮的列的標簽。

默認情況下,以下所有值都被解釋為 na

'', '#N/A', '#N/A N/A', '#NA', '-1.#IND', '-1.#QNAN',
'-NaN', '-nan', '1.#IND', '1.#QNAN', '', 'N/A',
'NA', 'NULL', 'NaN', 'n/a', 'nan', 'null'

20.keep_default_na | boolean | optional

是否保留默認的 na 值。該行為取決於您是否指定了 na_value 參數:

指定na_value

na_value 未指定

keep_deafault_na=True

除了默認的 na 值之外,還將使用您指定的 na_values

將使用默認的 na 值。

keep_default_na=False

您指定的 na_values 將替換默認的 na 值。

沒有數據將被視為 na 值。

默認情況下,keep_default_na=True

21.na_filter | boolean | optional

是否檢查 na 值。如果設置為 False ,則 na_valuekeep_default_na 將被忽略,因此像 "NaN" 這樣的值將被視為字符串 - "NaN" 而不是 NaN 。如果您確定您的文件不包含任何 na 值,則設置為 False,因為這將提高性能。默認情況下,na_filter=True

22.verbose | boolean | optional

是否在屏幕上打印以下指標:

Tokenization took: ~ ms
Type conversion took: ~ ms
Parser memory cleanup took: ~ ms

默認情況下,verbose=False

23.skip_blank_lines | boolean | optional

是否跳過空白行(例如僅包含製表符和空格的行)而不是將它們視為 na 值。默認情況下,skip_blank_lines=True

24.parse_dates | boolean | optional

解析日期的規則。允許的值如下:

說明

True

將索引解析為日期。所有其他列將被解釋為非日期類型。

False

不要將任何內容解析為日期。

list<int or string>

要解析為日期的列的整數索引或標簽。

例如,傳遞 ["A","C"] 將分別將列 "A""C" 解析為日期。

list<list<int or string>>

要組合以解析為單個日期的列。

例如,傳遞 [["A","C"]] 意味著列 AC 的組合將被解析為單個日期。

dict

列標簽(鍵)和要組合以解析為日期的列。例如,傳遞 {"A":[1,5]} 會將索引 15 處的組合列解析為日期,以在生成的 DataFrame 中形成列 "A"

默認情況下,parse_dates=False

如果某個值無法正確解析為日期,則該值的列將改為 object 類型。

25.infer_datetime_format | boolean | optional

如果設置為 Trueparse_dates!=False ,則將推斷日期的格式。推斷的格式經過深度優化,可能會帶來 5-10 倍的加速。默認情況下,infer_datetime_format=False

26.keep_date_col | boolean | optional

是否在生成的 DataFrame 中保留原始日期。僅當指定的 parse_dates 涉及組合多個列時,此參數才相關。默認情況下,keep_date_col=False

27.date_parser | function | optional

該函數用於將字符串轉換為日期。使用以下不同的參數可以調用該函數最多 3 次:

(我)。一個或多個日期字符串數組,對應於您根據 parse_dates 組合的列。

(二).包含連接日期字符串的單個數組,具體取決於您選擇的 parse_dates

(三)。與您根據 parse_dates 組合的列相對應的一個或多個日期字符串。每行都會調用此方法。

每當異常發生時,就會調用後續的函數。例如,如果 (i) 失敗,那麽接下來將調用 (ii)。默認情況下,使用dateutil.parser.parser

28.dayfirst | bool | optional

是否將日期放在前麵(例如 DD/MM)。默認情況下,dayfirst=False

29.cache_dates | boolean | optional

是否保留執行的日期轉換的緩存。當您嘗試轉換重複的日期時,您可以使用緩存來節省一些計算,而不是多次執行相同的轉換。默認情況下,cache_dates=True

30.iterator | boolean | optional

是否返回可用於分塊讀取數據的 Iterator。默認情況下,iterator=False

31.chunksize | int | optional

一次讀取的行數。如果指定,則將返回用於迭代行的 TextFileReader 對象。默認情況下,所有行都作為一個大塊讀取。

32.compression | string | optional

文件的壓縮格式。允許的值為:

"gzip", "bz2", "zip" and "xz"

默認情況下,compression="infer"

33.thousands | string | optional

表示每千位數字的字符。例如,傳遞 "," 將使 10000 等值成為 10,000 。默認情況下,thousands=None

34.decimal | string | optional

表示小數點的字符。默認情況下,decimal="." 。該參數的存在是因為法國等一些歐洲國家使用 , 來表示小數點。

35.lineterminator | char | optional

用於指示換行符的字符。僅當 engine="c" 時支持此函數。

36.quotechar | string 長度為 1 | optional

當一個值恰好包含分隔符時,該值將被錯誤地分割。您可以使用 quotechar 包裝您的值,以防止發生此類不必要的拆分。例如,如果 sep="," ,並且我們設置了 quotechar="@" ,則值 @alex,bob@ 將被視為整個 alex,bob,而不是 alexbob 兩個單獨的值。默認為 "

37.quoting | intcsv.QUOTE_* | optional

使用的引用規則 - 允許的值如下:

  • QUOTE_MINIMAL ,

  • QUOTE_ALL ,

  • QUOTE_NONNUMERIC ,

  • QUOTE_NONE

默認情況下,quoting=csv.QUOTE_MINIMAL

38.doublequote | boolean | optional

是否解析 quotechar 。默認情況下,doublequote=True

39.escapechar | string | optional

用於轉義雙引號的字符。默認情況下,escapechar=None

40.comment | string | optional

如果您的輸入文件包含注釋,那麽您可以指定標識注釋的內容。例如,設置為"#" 將意味著同一行中#後麵的字符將被視為注釋。傳遞的值必須是單個字符。

默認情況下,comments=None

41.encoding | string | optional

讀取文件時使用的編碼(例如 "latin-1""iso-8859-1" )。默認情況下,encoding="utf-8"

42.error_bad_lines | boolean | optional

當無法正確解析行時是否拋出錯誤。例如,如果您的行包含 6 個值,而您隻有 4 列,則會引發錯誤。如果設置為True,則會引發錯誤並且不會返回DataFrame。如果設置為 False ,則無法解析的行將被忽略。默認情況下,error_bad_lines=True

43.warn_bad_lines | boolean | optional

當無法正確解析行時是否輸出警告。默認情況下,warn_bad_lines=True

44.delim_whitespace | boolean | optional

是否將空格設置為分隔符。如果設置了此項,則不應指定 sep 參數。默認情況下,delim_whitespace=False

45.low_memory | boolean | optional

是否在內部分塊處理文件。如果設置為 True ,則列的結果類型可能會變得不太準確。為了確保不會發生這種情況,請使用 dtype 參數顯式指定數據類型。默認情況下,low_memory=False

注意

無論 low_memory 設置的值如何,生成的 DataFrame 都將相同。文件在內部僅以塊的形式進行解析,以便在讀取過程中節省內存。如前所述,在某些小情況下,數據類型可能會有所不同。

46.memory_map | boolean | optional

如果是 True ,那麽要讀取的文件將首先複製到內存並從那裏讀取。由於沒有 I/O 開銷,因此可以顯著提高性能。默認情況下,memory_map=False

47.float_precision | string | optional

用於浮點數的轉換器。可用選項如下:

  • None 用於標準轉換器

  • "high" 用於 high-precision 轉換器

  • "round_trip" 用於 round-trip 轉換器。

這僅與 engine="C" 相關。默認情況下,float_precision=None

返回值

如果設置了 chunksize,則返回 TextFileReader 對象。否則,將返回包含導入數據的DataFrame

例子

基本用法

假設我們有以下名為 sample.txt 的文本文件,其中包含一些逗號分隔的數據:

A,B,C
3,4,5
6,7,8

將此文件作為 DataFrame 讀取:

df = pd.read_csv("sample.txt")
df



   A  B  C
0  3  4  5
1  6  7  8

確保文本文件與 Python 腳本位於同一目錄中。

指定標題

假設我們的sample.txt文件如下:

# I am a comment
A,B,C
3,4,5
6,7,8

這裏,文件的第一行是空的,第二行是注釋。

默認情況下, header=0 ,這意味著第一個有效行(非注釋和非空行)將被視為列標簽:

df = pd.read_csv("sample.txt", comment="#")      # header=0
df



   A  B  C
0  3  4  5
1  6  7  8

一個常見的錯誤是將 header=0 解釋為文件的第一行。正如示例中所示,這不一定是正確的,因為 header 會忽略以下行:

  • skip_blank_lines=True 時為空白(默認)

  • 注釋(如 comment 參數所示)。

指定列標簽

假設我們的sample.txt文件如下:

3,4,5
6,7,8

請注意該文件不包含任何標頭。

要提供列標簽,請設置 names 參數,如下所示:

df = pd.read_csv("sample.txt", names=["A","B","C"])
df



   A  B  C
0  3  4  5
1  6  7  8

覆蓋標題

假設我們的sample.txt文件如下:

A,B,C
3,4,5
6,7,8

請注意該文件如何包含標題行。

要覆蓋標題行,請設置 header=0names

df = pd.read_csv("sample.txt", header=0, names=["D","E","F"])
df



   D  E  F
0  3  4  5
1  6  7  8

指定index_col

假設我們的sample.txt如下:

A,B,C
a,3,4,5
b,6,7,8

由於從第二行開始有 4 個值(而不是 3 個),read_csv(~) 將自動將第一列視為索引:

df = pd.read_csv("sample.txt")
df



   A  B  C
a  3  4  5
b  6  7  8

現在,考慮一個以 , 開頭的文件,如下所示:

,A,B,C
a,3,4,5
b,6,7,8

由於每行包含相同數量的 , ,因此該方法不會將第一列視為值的一部分。為了確保第一列被視為索引,請像這樣傳遞index_col=0

df = pd.read_csv("sample.txt", index_col=0)
df



   A  B  C
a  3  4  5
b  6  7  8

指定 usecols

默認情況下,所有列都作為 DataFrame 讀取和解析。您可以通過指定 usecols 參數來選擇要包含的列。

考慮以下 sample.txt 文件:

A,B,C
3,4,5
6,7,8

僅讀取AC 列:

df = pd.read_csv("sample.txt", usecols=["A","C"])
df



   A	C
0  3	5
1  6	8

您還可以傳入 usecols 的函數,該函數接受列的標簽作為參數,並返回一個布爾值,指示是否包含該列。

例如,僅包含帶有標簽 "B" 的列:

df = pd.read_csv("sample.txt", usecols=lambda x: x == "B")
df



   B
0  4
1  7

對於那些不熟悉 Python 中的 lambda 表達式的人來說,這相當於以下內容:

def foo(col_label):            # the name of the function is irrelevant. 
 return col_label == "B"
df = pd.read_csv("sample.txt", usecols=foo)
df



   B
0  4
1  7

指定mangle_dupe_cols

當列標簽衝突時,後一列不會覆蓋前一列 - 相反,mangle_dupe_cols=True 的默認行為是向後一列附加後綴。

考慮以下 sample.txt 文件:

A,B,A
3,4,5
6,7,8

使用默認參數讀取此文件會產生:

df = pd.read_csv("sample.txt")
df



   A  B  A.1
0  3  4   5
1  6  7   8

盡管沒有正式記錄,但尚不支持 mangle_dupe_cols=False ,它應該允許重複標簽。

指定數據類型

考慮以下 sample.txt 文件:

A,B
3,4
5,6

默認情況下,將從數據推斷列類型:

df = pd.read_csv("sample.txt")
df.dtypes



A    int64
B    int64
dtype: object

設置所有列的類型:

df = pd.read_csv("sample.txt", dtype=float)
df.dtypes



A    float64
B    float64
dtype: object

要單獨設置列的類型:

df = pd.read_csv("sample.txt", dtype={"A":float, "B":str})
df.dtypes



A    float64
B     object
dtype: object

指定轉換器

Converters 參數非常有用,因為它允許我們對列值應用映射。

考慮以下 sample.txt 文件:

A,B,C
3,4,5
6,7,8

我們可以像這樣轉換特定列的值:

df = pd.read_csv("sample.txt", converters={"A": lambda x : int(x)+10, "C": lambda x : int(x) > 6})
df



   A   B  C
0  13  4  False
1  16  7  True

函數的參數是 string 類型的列值,這意味著我們必須首先將其轉換為數值類型才能執行算術。

指定true_values和false_values

考慮以下 sample.txt 文件:

A,B,C
a,b,c
d,e,f

要將值 "a" 映射到 True 並將 "d" 映射到 False

df = pd.read_csv("sample.txt", true_values=["a"], false_values=["d"])
df



   A      B  C
0  True   b  c
1  False  e  f

請注意,隻有像我們上麵那樣將整個列映射到布爾值時,映射才有效。例如,以下內容將無法按預期工作:

df = pd.read_csv("sample.txt", true_values=["a"], false_values=["f"])
df



   A  B  C
0  a  b  c
1  d  e  f

指定跳行

skiprows 參數是要跳過的行號(以整數索引表示)。它接受單個整數、整數序列或函數。由於前兩者是不言自明的,我們將演示如何傳遞函數。該函數接受行標簽作為參數,並輸出一個布爾值,指示是否跳過該行。

考慮以下 sample.txt 文件:

A,B,C
3,4,5
6,7,8

要跳過第二行(具有整數索引 1 的行):

df = pd.read_csv("sample.txt", skiprows= lambda x : x == 1)
df



   A  B  C
0  6  7  8

指定na_filter

考慮以下 sample.txt 文件:

A,B,C
3,4,nan
6,NaN,8

這裏的問題是是否將 nanNaN 視為字符串或實際缺失值(即 nan )。默認情況下, na_filter=True ,這意味著它們將被視為 nan

df = pd.read_csv("sample.txt")   # na_filter=True
df



   A  B    C
0  3  4.0  NaN
1  6  NaN  8.0

應該清楚的是,我們現在有了實際的 nan 值,但我們可以使用檢查 nan 值的 df.isnull() 方法來確認這一點:

df.isnull()



   A      B      C
0  False  False  True
1  False  True   False

要將 nanNaN 視為字符串,請像這樣設置 na_filter=False

df = pd.read_csv("sample.txt", na_filter=False)
df



   A  B    C
0  3  4    nan
1  6  NaN  8

然後我們再次調用 df.isnull() 來檢查實際缺失值(nan):

df.isnull()



   A      B      C
0  False  False  False
1  False  False  False

我們看到這些值都是False,這意味著它們被解釋為字符串。

指定日期

將索引解析為日期

考慮以下sample.txt 文件:

name,gender
1995,alice,female
2005/12,bob,male

這裏,索引(行標簽)將被解析為日期。為此,請設置parse_date=True

df = pd.read_csv("sample.txt", parse_dates=True)
df



            name   gender
1995-01-01  alice  female
2005-12-01  bob    male

默認日期格式為 YYYY-MM-DD ,未指定的日期和月份將用 01 填充,如輸出中所示。

將非索引列解析為日期

考慮以下 sample.txt 文件:

name,admitted,graduated
alice,2014,2018
bob,2016,2020

正如我們之前所做的那樣,設置 parse_date=True 意味著隻有索引將被解析為日期。這對於該文件來說是不可取的,因為要解析的日期是非索引列。

要將 admittedgraduated 列解析為日期:

df = pd.read_csv("sample.txt", parse_dates=["admitted","graduated"])
df



   name   admitted    graduated
0  alice  2014-01-01  2018-01-01
1  bob    2016-01-01  2020-01-01

要確認我們列的數據類型:

df.dtypes



name                 object
admitted     datetime64[ns]
graduated    datetime64[ns]
dtype: object
組合多個日期列

考慮以下 sample.txt 文件:

Year,Month
2020,12
1994,02

在這裏,我們有 2 個獨立的列,我們希望將它們解析為單個日期列。我們可以通過傳入嵌套列表來做到這一點,如下所示:

df = pd.read_csv("sample.txt", parse_dates=[["Year","Month"]])
df



   Year_Month
0  2020-12-01
1  1994-02-01

我們還可以通過傳入 dict 來組合日期,如下所示:

df = pd.read_csv("sample.txt", parse_dates={"A":["Year","Month"]})
df



   A
0  2020-12-01
1  1994-02-01

使用 dict 而不是嵌套列表的優點是您可以為組合列提供標簽(在本例中為 A)。

指定date_parser

考慮以下 sample.txt 文件:

Year,Month
2020,12
1994,02

date_parser 參數允許您指定如何解析日期字符串。

例如,要應用一年的偏移量:

import dateutil
from dateutil.relativedelta import relativedelta
def my_date_parser(*arg):
    date_time = datetime.strptime(arg[0], "%Y %m")
 return date_time + relativedelta(years=1)
df = pd.read_csv("sample.txt", parse_dates={"A":["Year","Month"]}, date_parser=my_date_parser)
df



   A
0  2021-12-01
1  1995-02-01

由於 date_parser 函數最多可以使用不同的參數調用 3 次,因此我們使用可變參數的語法 *args

為了分解 date_parser 的工作原理,假設我們打印出 arg 是什麽:

def my_date_parser(*arg):
 print(arg)
    date_time = datetime.strptime(arg[0], "%Y %m")
 return date_time + relativedelta(years=1)



(array(['2020', '1994'], dtype=object), array(['12', '02'], dtype=object))
('2020 12',)
('1994 02',)
  • 第一次調用 my_date_parser 時,將返回 2 個 Series ,每個都包含要組合的日期字符串。由於 datetime.striptime 函數接受字符串而不是係列,因此該函數實際上會引發錯誤。

  • 但是,並沒有終止程序,而是再次調用 my_date_parser - 這次傳遞的參數是單個日期字符串 ( '2020 12' )。 striptime可以正確解析,所以這次解析成功。

指定迭代器

考慮以下 sample.txt 文件:

A,B
1,2
3,4
5,6
7,8
9,10

通過設置 iterator=True ,該方法返回 TextFileReader 。當您想要像這樣分塊讀取文件時,這非常有用:

reader = pd.read_csv("sample.txt", iterator=True)
print(reader.get_chunk(2))
print("-----")
print(reader.get_chunk(3))



   A  B
0  1  2
1  3  4
-----
   A   B
2  5   6
3  7   8
4  9  10

這裏get_chunk(n)返回帶有n行的DataFrame。除非您需要讀取不同大小的塊,否則請選擇使用chunksize

指定塊大小

考慮以下 sample.txt 文件:

A,B
1,2
3,4
5,6
7,8
9,10

要分塊讀取此文件,請設置chunksize,如下所示:

for chunk in pd.read_csv("sample.txt", chunksize=2):
 print(chunk)
 print("-----")



   A  B
0  1  2
1  3  4
-----
   A  B
2  5  6
3  7  8
-----
   A   B
4  9  10
-----

在這裏,每個 chunk 都是 DataFrame 類型。

注意

處理無法放入內存的大數據時,請考慮使用 iteratorchunksize

指定千

考慮以下 sample.txt 文件:

A B
3,000 6,000,000

這裏,我們的數據使用,來表示每千。

默認情況下,這些值將被視為字符串:

df = pd.read_csv("sample.txt", sep=" ")
df



   A      B
0  3,000  6,000,000

要將值視為數字,請像這樣設置thousands

df = pd.read_csv("sample.txt", sep=" ", thousands=",")
df



   A     B
0  3000  6000000

指定引號字符

當值包含令人困惑的分隔符時,quotechar 會派上用場。

考慮以下 sample.txt 文件:

A,B
3,4,5
6,7

在這裏,請注意第二行包含 3 個值,而其他行僅包含 2 個值。在這種情況下調用read_csv(~)將導致錯誤。

如果您想將 3,4 視為單個值而不是兩個單獨的值,則可以將它們括在引號中。默認情況下 quotechar=" ,這意味著我們可以像這樣否定分隔符:

A,B
"3,4",5
6,7

現在,調用 read_csv(~) 會產生:

df = pd.read_csv("sample.txt")
df



   A    B
0  3,4  5
1  6    7

請注意3,4 現在如何解釋為單個條目。

指定轉義字符

考慮以下sample.txt

A,B
"3\"4",5
6,7

這裏,內部 " 使用轉義字符 "\" 進行轉義。這表明我們希望將 3"4 讀取為該條目的值,但錯誤地調用 read_csv(~) 會產生以下結果:

df = pd.read_csv("sample.txt")
df



   A     B
0  3\4"  5
1  6     7

發生這種情況是因為 Pandas 無法將 "\" 識別為轉義字符,因此將內部 " 誤解為 quotechar

要解決此問題,請設置 escapechar 以轉義內部 "

df = pd.read_csv("sample.txt", escapechar="\\")
df



   A    B
0  3"4  5
1  6    7

在這裏,我們需要"\\",因為Python中的字符\是轉義字符,因此僅使用"\"最終會轉義結束",從而導致語法錯誤。

指定注釋

comment 參數用於標識注釋 - 同一行中傳遞的字符之後的所有內容都將被視為注釋,從而被忽略。

例如,考慮以下 sample.txt 文件:

A,B,C
3,4,5	# I am a comment
6,7,8	# I am a comment

忽略這些評論:

df = pd.read_csv("sample.txt", comment="#")
df



   A  B  C
0  3  4  5
1  6  7  8

相關用法


注:本文由純淨天空篩選整理自Isshin Inada大神的英文原創作品 Pandas | read_csv method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。