1. 程式人生 > >Python之Pandas使用教程

Python之Pandas使用教程

1.Pandas概述

  1. Pandas是Python的一個數據分析包,該工具為解決資料分析任務而建立。
  2. Pandas納入大量庫和標準資料模型,提供高效的操作資料集所需的工具。
  3. Pandas提供大量能使我們快速便捷地處理資料的函式和方法。
  4. Pandas是字典形式,基於NumPy建立,讓NumPy為中心的應用變得更加簡單。

2.Pandas安裝

pip3 install pandas

3.Pandas引入

import pandas as pd#為了方便實用pandas 採用pd簡寫

4.Pandas資料結構

4.1Series

import numpy as
np import pandas as pd s=pd.Series([1,2,3,np.nan,5,6]) print(s)#索引在左邊 值在右邊 ''' 0 1.0 1 2.0 2 3.0 3 NaN 4 5.0 5 6.0 dtype: float64 '''

4.2DataFrame

DataFrame是表格型資料結構,包含一組有序的列,每列可以是不同的值型別。DataFrame有行索引和列索引,可以看成由Series組成的字典。

dates=pd.date_range('20180310',periods=6)
df = pd.DataFrame(np.random.randn(6
,4), index=dates, columns=['A','B','C','D'])#生成6行4列位置 print(df)#輸出6行4列的表格 ''' A B C D 2018-03-10 -0.092889 -0.503172 0.692763 -1.261313 2018-03-11 -0.895628 -2.300249 -1.098069 0.468986 2018-03-12 0.084732 -1.275078 1.638007 -0.291145 2018-03-13 -0.561528 0.431088 0.430414 1.065939 2018-03-14 1.485434 -0.341404 0.267613 -1.493366 2018-03-15 -1.671474 0.110933 1.688264 -0.910599 '''
print(df['B']) ''' 2018-03-10 -0.927291 2018-03-11 -0.406842 2018-03-12 -0.088316 2018-03-13 -1.631055 2018-03-14 -0.929926 2018-03-15 -0.010904 Freq: D, Name: B, dtype: float64 ''' #建立特定資料的DataFrame df_1=pd.DataFrame({'A' : 1., 'B' : pd.Timestamp('20180310'), 'C' : pd.Series(1,index=list(range(4)),dtype='float32'), 'D' : np.array([3] * 4,dtype='int32'), 'E' : pd.Categorical(["test","train","test","train"]), 'F' : 'foo' }) print(df_1) ''' A B C D E F 0 1.0 2018-03-10 1.0 3 test foo 1 1.0 2018-03-10 1.0 3 train foo 2 1.0 2018-03-10 1.0 3 test foo 3 1.0 2018-03-10 1.0 3 train foo ''' print(df_1.dtypes) ''' A float64 B datetime64[ns] C float32 D int32 E category F object dtype: object ''' print(df_1.index)#行的序號 #Int64Index([0, 1, 2, 3], dtype='int64') print(df_1.columns)#列的序號名字 #Index(['A', 'B', 'C', 'D', 'E', 'F'], dtype='object') print(df_1.values)#把每個值進行打印出來 ''' [[1.0 Timestamp('2018-03-10 00:00:00') 1.0 3 'test' 'foo'] [1.0 Timestamp('2018-03-10 00:00:00') 1.0 3 'train' 'foo'] [1.0 Timestamp('2018-03-10 00:00:00') 1.0 3 'test' 'foo'] [1.0 Timestamp('2018-03-10 00:00:00') 1.0 3 'train' 'foo']] ''' print(df_1.describe())#數字總結 ''' A C D count 4.0 4.0 4.0 mean 1.0 1.0 3.0 std 0.0 0.0 0.0 min 1.0 1.0 3.0 25% 1.0 1.0 3.0 50% 1.0 1.0 3.0 75% 1.0 1.0 3.0 max 1.0 1.0 3.0 ''' print(df_1.T)#翻轉資料 ''' 0 1 2 \ A 1 1 1 B 2018-03-10 00:00:00 2018-03-10 00:00:00 2018-03-10 00:00:00 C 1 1 1 D 3 3 3 E test train test F foo foo foo 3 A 1 B 2018-03-10 00:00:00 C 1 D 3 E train F foo ''' print(df_1.sort_index(axis=1, ascending=False))#axis等於1按列進行排序 如ABCDEFG 然後ascending倒敘進行顯示 ''' F E D C B A 0 foo test 3 1.0 2018-03-10 1.0 1 foo train 3 1.0 2018-03-10 1.0 2 foo test 3 1.0 2018-03-10 1.0 3 foo train 3 1.0 2018-03-10 1.0 ''' print(df_1.sort_values(by='E'))#按值進行排序 ''' A B C D E F 0 1.0 2018-03-10 1.0 3 test foo 2 1.0 2018-03-10 1.0 3 test foo 1 1.0 2018-03-10 1.0 3 train foo 3 1.0 2018-03-10 1.0 3 train foo '''

5.Pandas選擇資料

dates=pd.date_range('20180310',periods=6)
df = pd.DataFrame(np.random.randn(6,4), index=dates, columns=['A','B','C','D'])#生成6行4列位置
print(df)
'''
                   A         B         C         D
2018-03-10 -0.520509 -0.136602 -0.516984  1.357505
2018-03-11  0.332656 -0.094633  0.382384 -0.914339
2018-03-12  0.499960  1.576897  2.128730  2.197465
2018-03-13  0.540385  0.427337 -0.591381  0.126503
2018-03-14  0.191962  1.237843  1.903370  2.155366
2018-03-15 -0.188331 -0.578581 -0.845854 -0.056373
 '''
print(df['A'])#或者df.A 選擇某列
'''
2018-03-10   -0.520509
2018-03-11    0.332656
2018-03-12    0.499960
2018-03-13    0.540385
2018-03-14    0.191962
2018-03-15   -0.188331
'''

切片選擇

print(df[0:3], df['20180310':'20180314'])#兩次進行選擇 第一次切片選擇 第二次按照篩選條件進行選擇
'''
                   A         B         C         D
2018-03-10 -0.520509 -0.136602 -0.516984  1.357505
2018-03-11  0.332656 -0.094633  0.382384 -0.914339
2018-03-12  0.499960  1.576897  2.128730  2.197465                    
                  A         B         C         D
2018-03-10 -0.520509 -0.136602 -0.516984  1.357505
2018-03-11  0.332656 -0.094633  0.382384 -0.914339
2018-03-12  0.499960  1.576897  2.128730  2.197465
2018-03-13  0.540385  0.427337 -0.591381  0.126503
2018-03-14  0.191962  1.237843  1.903370  2.155366
 '''

根據標籤loc-行標籤進行選擇資料

print(df.loc['20180312', ['A','B']])#按照行標籤進行選擇 精確選擇
 '''
A    0.499960
B    1.576897
Name: 2018-03-12 00:00:00, dtype: float64
'''

根據序列iloc-行號進行選擇資料

print(df.iloc[3, 1])#輸出第三行第一列的資料
#0.427336827399

print(df.iloc[3:5,0:2])#進行切片選擇
 '''
                   A         B
2018-03-13  0.540385  0.427337
2018-03-14  0.191962  1.237843
 '''

print(df.iloc[[1,2,4],[0,2]])#進行不連續篩選
'''
                   A         C
2018-03-11  0.332656  0.382384
2018-03-12  0.499960  2.128730
2018-03-14  0.191962  1.903370
 '''

根據混合的兩種ix

print(df.ix[:3, ['A', 'C']])
'''
                   A         C
2018-03-10 -0.919275 -1.356037
2018-03-11  0.010171 -0.380010
2018-03-12  0.285251 -1.174265
 '''

根據判斷篩選

print(df[df.A > 0])#篩選出df.A大於0的元素 布林條件篩選
'''
                   A         B         C         D
2018-03-11  0.332656 -0.094633  0.382384 -0.914339
2018-03-12  0.499960  1.576897  2.128730  2.197465
2018-03-13  0.540385  0.427337 -0.591381  0.126503
2018-03-14  0.191962  1.237843  1.903370  2.155366
 '''

6.Pandas設定資料

根據loc和iloc設定

dates = pd.date_range('20180310', periods=6)
df = pd.DataFrame(np.arange(24).reshape((6,4)), index=dates, columns=['A', 'B', 'C', 'D'])
print(df)
'''
             A   B     C   D
2018-03-10   0   1     2   3
2018-03-11   4   5     6   7
2018-03-12   8   9  1111  11
2018-03-13  12  13    14  15
2018-03-14  16  17    18  19
2018-03-15  20  21    22  23
'''

df.iloc[2,2] = 999#單點設定
df.loc['2018-03-13', 'D'] = 999
print(df)
'''
            A   B    C    D
2018-03-10  0   1    2    3
2018-03-11  0   5    6    7
2018-03-12  0   9  999   11
2018-03-13  0  13   14  999
2018-03-14  0  17   18   19
2018-03-15  0  21   22   23
'''

根據條件設定

df[df.A>0]=999#將df.A大於0的值改變
print(df)
'''
              A   B    C    D
2018-03-10    0   1    2    3
2018-03-11  999   5    6    7
2018-03-12  999   9  999   11
2018-03-13  999  13   14  999
2018-03-14  999  17   18   19
2018-03-15  999  21   22   23
 '''

根據行或列設定

df['F']=np.nan
print(df)
'''
              A   B    C   D
2018-03-10    0   1    2 NaN
2018-03-11  999   5    6 NaN
2018-03-12  999   9  999 NaN
2018-03-13  999  13   14 NaN
2018-03-14  999  17   18 NaN
2018-03-15  999  21   22 NaN
 '''

新增資料

df['E']  = pd.Series([1,2,3,4,5,6], index=pd.date_range('20180313', periods=6))#增加一列
print(df)
'''
              A   B    C   D    E
2018-03-10    0   1    2 NaN  NaN
2018-03-11  999   5    6 NaN  NaN
2018-03-12  999   9  999 NaN  NaN
2018-03-13  999  13   14 NaN  1.0
2018-03-14  999  17   18 NaN  2.0
2018-03-15  999  21   22 NaN  3.0
'''

7.Pandas處理丟失資料

處理資料中NaN資料

dates = pd.date_range('20180310', periods=6)
df = pd.DataFrame(np.arange(24).reshape((6,4)), index=dates, columns=['A', 'B', 'C', 'D'])
df.iloc[0,1]=np.nan
df.iloc[1,2]=np.nan
print(df)
'''
             A     B     C   D
2018-03-10   0   NaN   2.0   3
2018-03-11   4   5.0   NaN   7
2018-03-12   8   9.0  10.0  11
2018-03-13  12  13.0  14.0  15
2018-03-14  16  17.0  18.0  19
2018-03-15  20  21.0  22.0  23
'''

使用dropna()函式去掉NaN的行或列

print(df.dropna(axis=0,how='any'#))#0對行進行操作 1對列進行操作 any:只要存在NaN即可drop掉 all:必須全部是NaN才可drop
'''
             A     B     C   D
2018-03-12   8   9.0  10.0  11
2018-03-13  12  13.0  14.0  15
2018-03-14  16  17.0  18.0  19
2018-03-15  20  21.0  22.0  23
 '''

使用fillna()函式替換NaN值

print(df.fillna(value=0))#將NaN值替換為0
'''
             A     B     C   D
2018-03-10   0   0.0   2.0   3
2018-03-11   4   5.0   0.0   7
2018-03-12   8   9.0  10.0  11
2018-03-13  12  13.0  14.0  15
2018-03-14  16  17.0  18.0  19
2018-03-15  20  21.0  22.0  23
 '''

使用isnull()函式判斷資料是否丟失

print(pd.isnull(df))#矩陣用布林來進行表示 是nan為ture 不是nan為false
'''
                A      B      C      D
2018-03-10  False   True  False  False
2018-03-11  False  False   True  False
2018-03-12  False  False  False  False
2018-03-13  False  False  False  False
2018-03-14  False  False  False  False
2018-03-15  False  False  False  False
 '''
print(np.any(df.isnull()))#判斷資料中是否會存在NaN值
#True

8.Pandas匯入匯出

pandas可以讀取與存取像csv、excel、json、html、pickle等格式的資料,詳細說明請看官方資料

data=pd.read_csv('test1.csv')#讀取csv檔案
data.to_pickle('test2.pickle')#將資料存取成pickle檔案 
#其他檔案匯入匯出方式相同

9.Pandas合併資料

axis合併方向

df1 = pd.DataFrame(np.ones((3,4))*0, columns=['a','b','c','d'])
df2 = pd.DataFrame(np.ones((3,4))*1, columns=['a','b','c','d'])
df3 = pd.DataFrame(np.ones((3,4))*2, columns=['a','b','c','d'])
res = pd.concat([df1, df2, df3], axis=0, ignore_index=True)#0表示豎項合併 1表示橫項合併 ingnore_index重置序列index index變為0 1 2 3 4 5 6 7 8
print(res)
'''
     a    b    c    d
0  0.0  0.0  0.0  0.0
1  0.0  0.0  0.0  0.0
2  0.0  0.0  0.0  0.0
3  1.0  1.0  1.0  1.0
4  1.0  1.0  1.0  1.0
5  1.0  1.0  1.0  1.0
6  2.0  2.0  2.0  2.0
7  2.0  2.0  2.0  2.0
8  2.0  2.0  2.0  2.0
 '''

join合併方式

df1 = pd.DataFrame(np.ones((3,4))*0, columns=['a','b','c','d'], index=[1,2,3])
df2 = pd.DataFrame(np.ones((3,4))*1, columns=['b','c','d', 'e'], index=[2,3,4])
print(df1)
'''
     a    b    c    d
1  0.0  0.0  0.0  0.0
2  0.0  0.0  0.0  0.0
3  0.0  0.0  0.0  0.0
 '''
print(df2)
'''
     b    c    d    e
2  1.0  1.0  1.0  1.0
3  1.0  1.0  1.0  1.0
4  1.0  1.0  1.0  1.0
 '''
res=pd.concat([df1,df2],axis=1,join='outer')#行往外進行合併
print(res)
'''
     a    b    c    d    b    c    d    e
1  0.0  0.0  0.0  0.0  NaN  NaN  NaN  NaN
2  0.0  0.0  0.0  0.0  1.0  1.0  1.0  1.0
3  0.0  0.0  0.0  0.0  1.0  1.0  1.0  1.0
4  NaN  NaN  NaN  NaN  1.0  1.0  1.0  1.0
 '''

res=pd.concat([df1,df2],axis=1,join='outer')#行相同的進行合併
print(res)
'''
     a    b    c    d    b    c    d    e
2  0.0  0.0  0.0  0.0  1.0  1.0  1.0  1.0
3  0.0  0.0  0.0  0.0  1.0  1.0  1.0  1.0
'''

res=pd.concat([df1,df2],axis=1,join_axes=[df1.index])#以df1的序列進行合併 df2中沒有的序列NaN值填充
print(res)
'''
     a    b    c    d    b    c    d    e
1  0.0  0.0  0.0  0.0  NaN  NaN  NaN  NaN
2  0.0  0.0  0.0  0.0  1.0  1.0  1.0  1.0
3  0.0  0.0  0.0  0.0  1.0  1.0  1.0  1.0
'''

append新增資料

df1 = pd.DataFrame(np.ones((3,4))*0, columns=['a','b','c','d'])
df2 = pd.DataFrame(np.ones((3,4))*1, columns=['a','b','c','d'])
df3 = pd.DataFrame(np.ones((3,4))*1, columns=['a','b','c','d'])
s1 = pd.Series([1,2,3,4], index=['a','b','c','d'])

res=df1.append(df2,ignore_index=True)#將df2合併到df1的下面 並重置index
print(res)
'''
     a    b    c    d
0  0.0  0.0  0.0  0.0
1  0.0  0.0  0.0  0.0
2  0.0  0.0  0.0  0.0
3  1.0  1.0  1.0  1.0
4  1.0  1.0  1.0  1.0
5  1.0  1.0  1.0  1.0
'''

res=df1.append(s1,ignore_index=True)#將s1合併到df1下面 並重置index
print(res)
'''
     a    b    c    d
0  0.0  0.0  0.0  0.0
1  0.0  0.0  0.0  0.0
2  0.0  0.0  0.0  0.0
3  1.0  2.0  3.0  4.0
'''

10.Pandas合併merge

依據一組key合併

left = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3'],
                     'A': ['A0', 'A1', 'A2', 'A3'],
                     'B': ['B0', 'B1', 'B2', 'B3']})
print(left)
'''
    A   B key
0  A0  B0  K0
1  A1  B1  K1
2  A2  B2  K2
3  A3  B3  K3
'''
right = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3'],
                      'C': ['C0', 'C1', 'C2',  'C3'],
                      'D': ['D0', 'D1', 'D2', 'D3']})
print(right)
'''
    C   D key
0  C0  D0  K0
1  C1  D1  K1
2  C2  D2  K2
3  C3  D3  K3
'''
res=pd.merge(left,right,on='key')
print(res)
'''
    A   B key   C   D
0  A0  B0  K0  C0  D0
1  A1  B1  K1  C1  D1
2  A2  B2  K2  C2  D2
3  A3  B3  K3  C3  D3
'''

依據兩組key合併

left = pd.DataFrame({'key1': ['K0', 'K0', 'K1', 'K2'],
                             'key2': ['K0', 'K1', 'K0', 'K1'],
                             'A': ['A0', 'A1', 'A2', 'A3'],
                             'B': ['B0', 'B1', 'B2', 'B3']})
print(left)
'''
    A   B key1 key2
0  A0  B0   K0   K0
1  A1  B1   K0   K1
2  A2  B2   K1   K0
3  A3  B3   K2   K1
 '''
right = pd.DataFrame({'key1': ['K0', 'K1', 'K1', 'K2'],
                              'key2': ['K0', 'K0', 'K0', 'K0'],
                              'C': ['C0', 'C1', 'C2', 'C3'],
                              'D': ['D0', 'D1', 'D2', 'D3']})
print(right)
'''
    C   D key1 key2
0  C0  D0   K0   K0
1  C1  D1   K1   K0
2  C2  D2   K1   K0
3  C3  D3   K2   K0
 '''

res=pd.merge(left,right,on=['key1','key2'],how='inner')#內聯合並
print(res)
'''
    A   B key1 key2   C   D
0  A0  B0   K0   K0  C0  D0
1  A2  B2   K1   K0  C1  D1
2  A2  B2   K1   K0  C2  D2
'''

res=pd.merge(left,right,on=['key1','key2'],how='outer')#外聯合並
print(res)
'''
     A    B key1 key2    C    D
0   A0   B0   K0   K0   C0   D0
1   A1   B1   K0   K1  NaN  NaN
2   A2   B2   K1   K0   C1   D1
3   A2   B2   K1   K0   C2   D2
4   A3   B3   K2   K1  NaN  NaN
5  NaN  NaN   K2   K0   C3   D3
'''

res=pd.merge(left,right,on=['key1','key2'],how='left')#左聯合並
'''
    A   B key1 key2    C    D
0  A0  B0   K0   K0   C0   D0
1  A1  B1   K0   K1  NaN  NaN
2  A2  B2   K1   K0   C1   D1
3  A2  B2   K1   K0   C2   D2
4  A3  B3   K2   K1  NaN  NaN
'''

res=pd.merge(left,right,on=['key1','key2'],how='right')#右聯合並
print(res)
'''
     A    B key1 key2   C   D
0   A0   B0   K0   K0  C0  D0
1   A2   B2   K1   K0  C1  D1
2   A2   B2   K1   K0  C2  D2
3  NaN  NaN   K2   K0  C3  D3
'''

Indicator合併

df1 = pd.DataFrame({'col1':[0,1], 'col_left':['a','b']})
print(df1)
'''
   col1 col_left
0     0        a
1     1        b
 '''
df2 = pd.DataFrame({'col1':[1,2,2],'col_right':[2,2,2]})
print(df2)
'''
   col1  col_right
0     1          2
1     2          2
2     2          2
 '''

res=pd.merge(df1,df2,on='col1',how='outer',indicator=True)#依據col1進行合併 並啟用indicator=True輸出每項合併方式
print(res)
'''
   col1 col_left  col_right      _merge
0     0        a        NaN   left_only
1     1        b        2.0        both
2     2      NaN        2.0  right_only
3     2      NaN        2.0  right_only
'''

res = pd.merge(df1, df2, on='col1', how='outer', indicator='indicator_column')#自定義indicator column名稱
print(res)
'''
   col1 col_left  col_right indicator_column
0     0        a        NaN        left_only
1     1        b        2.0             both
2     2      NaN        2.0       right_only
3     2      NaN        2.0       right_only
'''

依據index合併

left = pd.DataFrame({'A': ['A0', 'A1', 'A2'],
                                  'B': ['B0', 'B1', 'B2']},
                                  index=['K0', 'K1', 'K2'])
print(left)
'''
     A   B
K0  A0  B0
K1  A1  B1
K2  A2  B2
 '''
right = pd.DataFrame({'C': ['C0', 'C2', 'C3'],
                                     'D': ['D0', 'D2', 'D3']},
                                      index=['K0', 'K2', 'K3'])
print(right)
'''
     C   D
K0  C0  D0
K2  C2  D2
K3  C3  D3
'''

res=pd.merge(left,right,left_index=True,right_index=True,how='outer')#根據index索引進行合併 並選擇外聯合並
print(res)
'''
      A    B    C    D
K0   A0   B0   C0   D0
K1   A1   B1  NaN  NaN
K2   A2   B2   C2   D2
K3  NaN  NaN   C3   D3
'''

res=pd.merge(left,right,left_index=True,right_index=True,how='inner')
print(res)
'''
     A   B   C   D
K0  A0  B0  C0  D0
K2  A2  B2  C2  D2
'''

更多內容請關注公眾號’謂之小一’,若有疑問可在公眾號後臺提問,隨時回答,內容轉載請註明出處。「謂之小一」希望提供給讀者別處看不到的內容,關於網際網路、機器學習、資料探勘、程式設計、書籍、生活…

公眾號

相關推薦

PythonPandas使用教程

1.Pandas概述 Pandas是Python的一個數據分析包,該工具為解決資料分析任務而建立。 Pandas納入大量庫和標準資料模型,提供高效的操作資料集所需的工具。 Pandas提供大量能使我們快速便捷地處理資料的函式和方法。 Pandas是字典形式,

數據分析pandas教程-----概念篇

對齊 0.12 概念 sta 等等 valid nbsp get 小數 目錄 1 pandas基本概念1.1 pandas數據結構剖析1.1.1 Series1.1.2 DataFrame1.1.3 索引1.1.4 pandas基本操作1.1.4.1 重索引1

pythonpandas

numpy 混合 column query 大於 ace col outer 相關性 一、生成數據表 1、首先導入pandas庫,一般都會用到numpy庫,所以我們先導入備用: import pandas as pd 2、導入CSV或者xlsx文件: df = pd.Dat

pythonpandas核心函數

ria 特定 cor strong 取數據 col none lse 命名 Pandas的23種核心函數:import pandas as pd 基礎數據集操作(1)讀取CSV文件 pd.DataFrame.from_csv("csv_file") 或者 pd.read

pythonpandas簡單介紹及使用(一)

dad all 就會 能夠 簡單的 兩種 first 模型 自己 python之pandas簡單介紹及使用(一) 一、  Pandas簡介1、Python Data Analysis Library 或 pandas 是基於NumPy 的一種工具,該工具是為了解決數據分析任

pythonpandas用法大全

之前 size 數值 參考 beijing drop .sh desc int python之pandas用法大全 更新時間:2018年03月13日 15:02:28 投稿:wdc 我要評論 本文講解了python的pandas基本用法,大家可以參考下 一、生成

pythonpandas的函式排序

import numpy as np import pandas as pd s1 = pd.Series(np.random.randint(-5,10,10)) s2 = pd.DataFrame(np.random.uniform(-5,10,(3,4)),index=list('

pythonpandas的層級索引與資料重構

import numpy as np import pandas as pd #層級索引 s1 = pd.Series(np.random.randint(-5,10,12),index=[list('aaabbbcccddd'),[1,2,4,1,2,3,1,2,3,1,2,3]]) p

pythonpandas的簡單使用02

import numpy as np import pandas as pd s1 = pd.Series(np.random.randint(-5,10,10)) s2 = pd.DataFrame(np.random.uniform(-5,10,(3,4)),index=list('

pythonpandas的簡單使用01

import pandas as pd import numpy as np #Series物件,類似一維陣列,左邊的資料是索引,右邊的一列是資料,自動建立 a1 = pd.Series([1,12]) # print(a1) a2 = pd.Series([[2,3],[2,4]])

PythonPandas(5)

#資料分組 #根據某些條件將資料進行拆分成組 #每個組獨立應用函式 #將結果合併到一個數據結構中 import numpy as np import pandas as pd ​ In [4]: #分組 df = pd.DataFrame({'A':['foo','bar','foo','bar'

PythonPandas(4)

#Pandas具有全功能的,高效能記憶體中連線操作,與Sql關係資料庫非常相似 import numpy as np import pandas as pd ​ In [18]: #合併 連線 去重 替換 df1 = pd.DataFrame({'key':['K0','K1','K2

PythonPandas(3)

#常用數學,統計方法 import numpy as np import pandas as pd In [7]: df = pd.DataFrame({'key1':[4,5,3,np.nan,2], 'key2':[1,2,np.nan,4,5],

PythonPandas(2)

import numpy as np import pandas as pd In [36]: df = pd.DataFrame(np.random.rand(12).reshape(3,4)*100,index=['one','two','three'],columns = ['a','b',

PythonPandas(1)

import numpy as np import pandas as pd In [2]: #Series:一維陣列,與Numpy中的一維array類似。二者與Python基本的資料結構List也很相近,其區別是:List中的元素可以是不同的資料型別,而Array和Series中則只允許儲存相同

pythonpandas

讀取csv檔案 fixed_df = pd.read_csv('data/bikes.csv', sep=';',  parse_dates=['Date'],encoding='latin1',header=0, dayfirst=True, index_col='Dat

pythonpandas分組統計

Pandas分組統計佔比 資料例如: 美贊臣標籤 2017-11-15       MOB      女性 110548715660 美贊臣標籤 2017-11-15       MOB      男性 104342715471 美贊臣標籤 2017-11-15     

Pythonnumpy教程(三):轉置、乘積、通用函式

1.陣列轉置和軸對換:陣列不僅有transpose方法,還有一個特殊的T屬性: arr = np.arange(15).reshape(3,5) arr輸出: array([[ 0, 1, 2, 3, 4], [ 5, 6, 7, 8,

pythonpandas簡單介紹及使用

一、  Pandas簡介1、Python Data Analysis Library 或 pandas 是基於NumPy 的一種工具,該工具是為了解決資料分析任務而建立的。Pandas 納入了大量庫和一些標準的資料模型,提供了高效地操作大型資料集所需的工具。pandas提供了大量能使我們快速便捷地處理資料的函

PythonPandas學習筆記(三) apply|applymap|map和grouppy

文章目錄 一、apply|applymap|map 異同分析 二、apply 與 grounpy 的綜合運用 一、apply|applymap|map 異同分析 分