pandas組隊學習:task2
阿新 • • 發佈:2020-12-19
一、檔案讀取和寫入
1. 檔案讀取
-
csv:pd.read_csv(filename)
-
txt :pd.read_table(filename)
-
excle:pd.read_excel(filename)
示例:
import pandas as pd df_csv = pd.read_csv('my_csv.csv') Out[6]: col1 col2 col3 col4 col5 0 2 a 1.4 apple 2020/1/1 1 3 b 3.4 banana 2020/1/2 2 6 c 2.5 orange 2020/1/5 3 5 d 3.2 lemon 2020/1/7
header=None表示第一行不作為列名,例如:
import pandas as pd df_csv = pd.read_csv('my_csv.csv',header=None) #原本一共4行,現在變成了5行 Out[9]: 0 1 2 3 4 0 col1 col2 col3 col4 col5 1 2 a 1.4 apple 2020/1/1 2 3 b 3.4 banana 2020/1/2 3 6 c 2.5 orange 2020/1/5 4 5 d 3.2 lemon 2020/1/7
usecols表示讀取指定列:(輸入為列的名稱)
import pandas as pd
df_csv = pd.read_csv('my_csv.csv',usecols=['col1']) #讀取第一列
Out[13]:
col1
0 2
1 3
2 6
3 5
nrows表示讀取的行數:(輸入為整數)
import pandas as pd df_csv = pd.read_csv('my_csv.csv',nrows=2) #讀取兩行 Out[15]: col1 col2 col3 col4 col5 0 2 a 1.4 apple 2020/1/1 1 3 b 3.4 banana 2020/1/2
2.檔案寫入
- csv:data.to_csv(path, index = False) index=False表示將索引去除
- excel:data.to_excel(path, index = False)
- txt:data.to_csv(path,sep='\t', index=False)
二.基本資料結構
1.series
由四個部分組成,資料:data,索引:index,儲存型別:dtype,名稱:name;例如:
s = pd.Series(data = [1,10,100],index=[1,2,3],name = 'my_series')
Out[20]:
1 1
2 10
3 100
Name: my_series, dtype: int64
訪問這些屬性可以分別用:資料:s.values,索引:s.index,型別:s.dtype,名稱:s.name訪問;
2.DataFrame
DataFrame在sreies的基礎上,將列進行了擴充套件,由原來的一維變為了二維。
建立方法和sries基本一致,增加列的索引名,例如:
In [33]: df = pd.DataFrame(data = {'col_0': [1,2,3], 'col_1':list('abc'),
....: 'col_2': [1.2, 2.2, 3.2]},
....: index = ['row_%d'%i for i in range(3)])
....:
In [34]: df
Out[34]:
col_0 col_1 col_2
row_0 1 a 1.2
row_1 2 b 2.2
row_2 3 c 3.2
可以按列索引,取出一列或者多列:
In [35]: df['col_0'] #取出某一列
Out[35]:
row_0 1
row_1 2
row_2 3
Name: col_0, dtype: int64
In [36]: df[['col_0', 'col_1']] #取出多列
Out[36]:
col_0 col_1
row_0 1 a
row_1 2 b
row_2 3 c
三、常見基本函式
1.彙總函式
head
函式表示返回表的前n行,tail
返回後n行:
In [46]: df.head(2)
Out[46]:
School Grade Name Gender Height Weight Transfer
0 Shanghai Jiao Tong University Freshman Gaopeng Yang Female 158.9 46.0 N
1 Peking University Freshman Changqiang You Male 166.5 70.0 N
In [47]: df.tail(3)
Out[47]:
School Grade Name Gender Height Weight Transfer
197 Shanghai Jiao Tong University Senior Chengqiang Chu Female 153.9 45.0 N
198 Shanghai Jiao Tong University Senior Chengmei Shen Male 175.3 71.0 N
199 Tsinghua University Sophomore Chunpeng Lv Male 155.7 51.0
info
返回表的資訊概況, describe
返回表中數值列對應的主要統計量 :
In [48]: df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 200 entries, 0 to 199
Data columns (total 7 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 School 200 non-null object
1 Grade 200 non-null object
2 Name 200 non-null object
3 Gender 200 non-null object
4 Height 183 non-null float64
5 Weight 189 non-null float64
6 Transfer 188 non-null object
dtypes: float64(2), object(5)
memory usage: 11.1+ KB
In [49]: df.describe()
Out[49]:
Height Weight
count 183.000000 189.000000
mean 163.218033 55.015873
std 8.608879 12.824294
min 145.400000 34.000000
25% 157.150000 46.000000
50% 161.900000 51.000000
75% 167.500000 65.000000
max 193.900000 89.000000
2.統計函式
quantile:返回分位數
In [53]: df_demo.quantile(0.75)
Out[53]:
Height 167.5
Weight 65.0
Name: 0.75, dtype: float64
count:返回非缺失值個數
In [54]: df_demo.count()
Out[54]:
Height 183
Weight 189
dtype: int64
idxmax:返回最大值索引
In [55]: df_demo.idxmax() # idxmin是對應的函式
Out[55]:
Height 193
Weight 2
dtype: int64
3.唯一值函式
主要用來統計表中類別的個數。
-
unique:統計類別的列表
-
nunique:統計類別的數目
-
value_counts:統計不同類別出現的次數
上面這幾個函式只能針對某一列使用,若對多列使用,應該用drop_duplicates函式,相當於是去除重複的值。
對於drop_duplicates函式中的keep引數:keep=first表示保留第一次出現的行,keep=last表示保留最後一次,False表示把重複的全都剔除。
4.替換函式
- 對映替換:replace
- 邏輯替換:where和mask;
where
函式在傳入條件為False
的對應行進行替換,而mask
在傳入條件為True
的對應行進行替換。 - 數值替換:round,四捨五入;abs,取絕對值;clip,上下邊界截斷。
5.排序函式
- 值排序:sort_values,其中ascending引數預設為True升序,false為降序 (按列值排)
- 索引排序:sort_index,索引用leve表示,排序順序是按字母的順序 (按行值排)
6.apply方法
有點像上一章的map方法,也是通過自定義函式來進行操作
四、視窗物件