Pandas常用方法和使用技巧

2022-02-07 06:48:31 字數 2148 閱讀 8702

在python 3 環境下,根據實際使用pandas的一些經驗,簡單總結了一下pandas的使用要點。

pandas 有三種結構, 都可以指定索引,預設情況下,索引值從0。三種結構分別為:

1. series初始化

data = [1,2,3,4]

a = series(data)

b = series(data, index = ['a','b','c','d'])

print(a,b)

2. dataframe初始化, 有橫軸index和縱軸column.可以傳入陣列或者字典構建。

dates = pd.date_range('20180101', periods = 6)

a = dataframe(np.random.randn(6,4), index = dates, columns = ['a','b','c','d'])

b = dataframe()

3. 資料檢視。 下標(橫軸)用index檢視,列標用columns, 數值用values檢視簡單的統計資料.describe, 轉置.t。

dates = pd.date_range('20180101', periods = 6)

a = dataframe(np.random.randn(6,4), index = dates, columns = ['a','b','c','d'])

print(a.index, a.columns, a.values)

print(a.describe(), a.t)

4. 排序,sort_index(axis=0, ascending=true)是對行或列的索引的排序, 整體一起移動。sort_values(by, axis=0, ascending=true) 根據by指定的列或行裡的值排序, axis需要與by的軸匹配。

dates = pd.date_range('20180101', periods = 6)

a = dataframe(np.random.randn(6,4), index = dates, columns = ['a','b','c','d'])

b = a.sort_index(axis = 0, ascending = false)

c = a.sort_index(axis = 1, ascending = false)

d = a.sort_values(by = 'c', axis = 0, ascending = true)

5. dataframe 索引和切片. 保留了numpy用數值範圍進行切片的方法獲取行,同時可以用索引標籤範圍切片獲取行和列最好使用.at, .iat, .loc, .iloc 和 .ix 方法進行索引。

dates = pd.date_range('20180101', periods = 6)

a = dataframe(np.random.randn(6,4), index = dates, columns = ['a','b','c','d'])

b = a[0:3]  # 數值範圍對行進行切片

b2 = a['20180102':'20180105']

b3 = a['b'] = a.b    # a['b','c']這種不行,需要為 a[['b','c']],用.lco,.ix 可以方便的選擇多行或多列

b4 = a.loc[:, ['b','c']]    # 此種形式對行和列切片類似numpy,ix也有 一樣的效果

b5 = a.at[dates[1], 'a']

b6 = a[a.a > 0]

b6 = a[a < 0]

6.  算數運算和資料對齊。pandas的乙個重要功能便是可以對不同的索引物件進行算術運算,如果存在不同的索引,則結果的索引就是所有索引的並集,不同索引值的地方進行填充,預設為nan,然後進行算術運算。用add, sub,div,mul進行操作,可以在運算前指定補充的值。

df = dataframe(np.random.rand(3,3), columns = list('bcd'), index = ['b','c','d'] )

df2 = dataframe(np.random.rand(4,3), columns = list('bde'), index = ['a','b','c','e'])

df3 = df + df2

df4 = df.add(df2, fill_value = 0)

Numpy常用方法和使用技巧

在python 3 環境下,根據切身使用numpy經驗,總結了一些小的常用的numpy方法和技巧。1.np.array 可將序列物件 如列表和元包 轉換為陣列,可以生成一維或多維陣列,生成多維陣列時要對齊。a 1,2,3 4,5,6 b np.array a 2.陣列與列表的相互轉換 a np.on...

pandas常用方法

import pandas as pd import numpy as np import matplotlib.pyplot as plt import datetime import redf pd.read csv path file.csv 引數 header none 用預設列名,0,1,...

pandas 常用方法

import pandas as pd pd.read csv filename,encoding utf 8 讀取csv pd.to csv filename 儲存檔案,filename為檔案路徑,可以是相對路徑or絕對路徑 pd.to csv filename,index 0 儲存到檔案時,不要...