Python學習筆記第五十五天
- Pandas CSV 文件
- read_csv()
- to_string()
- to_csv()
- 數據處理
- head()
- tail()
- fillna()
- info()
- 后記
Pandas CSV 文件
CSV(Comma-Separated Values,逗號分隔值,有時也稱為字符分隔值,因為分隔字符也可以不是逗號),其文件以純文本形式存儲表格數據(數字和文本)。
CSV 是一種通用的、相對簡單的文件格式,被用戶、商業和科學廣泛應用。
read_csv()
Pandas 可以很方便的處理 CSV 文件,本文以 data.csv 為例,你可以下載 data.csv 或打開 data.csv 查看。
# 實例 1
import pandas as pd
df = pd.read_csv('data.csv')
print(df.to_string())
to_string()
to_string() 用于返回 DataFrame 類型的數據,如果不使用該函數,則輸出結果為數據的前面 5 行和末尾 5 行,中間部分以 … 代替。
# 實例 2
import pandas as pd
df = pd.read_csv('data.csv')
print(df)
to_csv()
我們也可以使用 to_csv() 方法將 DataFrame 存儲為 csv 文件:
# 實例 3
import pandas as pd
# 三個字段 name, site, age
nme = ["Google", "Taobao", "Wiki"]
st = ["www.google.com", "www.taobao.com", "www.wikipedia.org"]
ag = [90, 80, 98]
# 字典
dict = {'name': nme, 'site': st, 'age': ag}
df = pd.DataFrame(dict)
# 保存 dataframe
df.to_csv('site.csv')
數據處理
head()
head( n ) 方法用于讀取前面的 n 行,如果不填參數 n ,默認返回 5 行。
# 實例 5
import pandas as pd
df = pd.read_csv('data.csv')
# 讀取前面 5 行
print(df.head())
注意,head()默認返回的是前5行,如果你想改變默認行數,你可以通過head()函數中的參數n進行設置。此外,你需要首先導入pandas庫并讀取csv文件到DataFrame對象。
# 實例 6
import pandas as pd
df = pd.read_csv('data.csv')
# 讀取前面 10 行
print(df.head(10))
tail()
tail( n ) 方法用于讀取尾部的 n 行,如果不填參數 n ,默認返回 5 行,空行各個字段的值返回 NaN。如果指定參數n,則返回最后n行。如果n大于DataFrame的行數,則返回全部的行。
# 實例 7
import pandas as pd
df = pd.read_csv('data.csv')
# 讀取末尾 5 行
print(df.tail())
注意,實例中,已經正確使用了tail()方法來讀取’data.csv’文件的最后5行。如果文件有足夠的行數,那么tail()方法會返回最后5行數據。如果文件不足夠長,那么返回的行數將與文件的實際行數相同。
另外,對于空行,Pandas將其各個字段的值返回NaN。如果你希望將空行視為具有特定值(例如0或’')的行,你可以使用fillna()方法來填充缺失值。
fillna()
# 實例 8
import pandas as pd
df = pd.read_csv('data.csv')
# 將空行填充為0
print(df.tail().fillna(0))
讀取末尾 10 行也是一樣的
# 實例 9
import pandas as pd
df = pd.read_csv('data.csv')
# 讀取末尾 10 行
print(df.tail(10).fillna(0))
info()
info()方法在Pandas庫中主要用于輸出DataFrame的相關信息。這包括行數、列數、非空值的數量以及每列的數據類型等。
當你在一個DataFrame對象上調用info()方法時,它會輸出以下信息:
- DataFrame的索引(行標簽)的詳細信息,包括最小值、最大值、唯一值和步長。
- DataFrame的列標簽及其一些統計信息,包括數據類型、非空值的數量等。
- DataFrame的行數和列數。
# 實例 10
import pandas as pd
df = pd.read_csv('data.csv')
print(df.info())
當你運行上述代碼時,info()方法將輸出類似以下的信息(具體內容取決于你的數據)舉個例子如下:
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 500 entries, 0 to 499 # 行數,500 行,第一行編號為 0
Data columns (total 13 columns): # 列數,13列
# Column Non-Null Count Dtype # 各列的數據類型
--- ------ -------------- -----
0 team 500 non-null object # non-null,意思為非空的數據
1 player 483 non-null object
2 pos 483 non-null object
3 age 483 non-null float64
4 height 483 non-null float64
...
11 mp_mp 500 non-null float64
12 mp40 500 non-null float64
13 mp40g 498 non-null float64
dtypes: float64(7), int64(2), object(4) # 類型
memory usage: 49.3 KB
這個輸出說明了:
- DataFrame的類別(在這個例子中是一個pandas DataFrame)和索引范圍。
- DataFrame的列數和非空值的數量。
- 每列的非空值數量和數據類型。
- 每列的缺失值數量(如果有的話)。
- DataFrame使用的內存量。
后記
今天學習的是Python Pandas DataFrame學會了嗎。 今天學習內容總結一下:
- Pandas CSV 文件
- read_csv()
- to_string()
- to_csv()
- 數據處理
- head()
- tail()
- info()