Python中DataFrame常見操作:取行、列、切片、統計特徵值

Python中DataFrame常見操作:取行、列、切片、統計特徵值:

#  -*- coding: utf-8 -*-
import numpy as np
import pandas as pd

data = pd.DataFrame(np.arange(16).reshape(4,4),index = list("ABCD"),columns=list('wxyz'))
print(data)
print(data[0:2])       #取前兩行數據
print('+++++++++++++')

print(len(data))              #求出一共多少行
print(data.columns.size)      #求出一共多少列
print('+++++++++++++')

print(data.columns)        #列索引名稱
print(data.index)       #行索引名稱
print('+++++++++++++')

print(data.iloc[1])             #取第2行數據
print('+++++++++++++')

print(data['x'])      #取列索引爲x的一列數據
print(data.loc['A'])      #取第行索引爲”A“的一行數據,
print('+++++++++++++')

print(data.loc[:,['x','z']])          #表示選取所有的行以及columns爲a,b的列;
print(data.loc[['A','B'],['x','z']])     #表示選取'A'和'B'這兩行以及columns爲x,z的列的並集;
print('+++++++++++++')

print(data.iloc[1:3,1:3])              #數據切片操作,切連續的數據塊
print(data.iloc[[0,2],[1,2]])              #即可以自由選取行位置,和列位置對應的數據,切零散的數據塊
print('+++++++++++++')

print(data[data>2])       #表示選取數據集中大於0的數據
print(data[data.x>5])       #表示選取數據集中x這一列大於5的所有的行
print('+++++++++++++')

a1 = data.copy()
print(a1[a1['y'].isin(['6','10'])])    #表顯示滿足條件:列y中的值包含'6','8'的所有行。
print('+++++++++++++')

print(data.mean())           #默認對每一列的數據求平均值;若加上參數a.mean(1)則對每一行求平均值;
print(data['x'].value_counts())    #統計某一列x中各個值出現的次數:
print('+++++++++++++')

print(data.describe()) #對每一列數據進行統計,包括計數,均值,std,各個分位數等。

下面是輸出的結果:

    w   x   y   z
A   0   1   2   3
B   4   5   6   7
C   8   9  10  11
D  12  13  14  15
   w  x  y  z
A  0  1  2  3
B  4  5  6  7
+++++++++++++
4
4
+++++++++++++
Index(['w', 'x', 'y', 'z'], dtype='object')
Index(['A', 'B', 'C', 'D'], dtype='object')
+++++++++++++
w    4
x    5
y    6
z    7
Name: B, dtype: int32
+++++++++++++
A     1
B     5
C     9
D    13
Name: x, dtype: int32
w    0
x    1
y    2
z    3
Name: A, dtype: int32
+++++++++++++
    x   z
A   1   3
B   5   7
C   9  11
D  13  15
   x  z
A  1  3
B  5  7
+++++++++++++
   x   y
B  5   6
C  9  10
   x   y
A  1   2
C  9  10
+++++++++++++
      w     x     y   z
A   NaN   NaN   NaN   3
B   4.0   5.0   6.0   7
C   8.0   9.0  10.0  11
D  12.0  13.0  14.0  15
    w   x   y   z
C   8   9  10  11
D  12  13  14  15
+++++++++++++
   w  x   y   z
B  4  5   6   7
C  8  9  10  11
+++++++++++++
w    6.0
x    7.0
y    8.0
z    9.0
dtype: float64
13    1
5     1
9     1
1     1
Name: x, dtype: int64
+++++++++++++
               w          x          y          z
count   4.000000   4.000000   4.000000   4.000000
mean    6.000000   7.000000   8.000000   9.000000
std     5.163978   5.163978   5.163978   5.163978
min     0.000000   1.000000   2.000000   3.000000
25%     3.000000   4.000000   5.000000   6.000000
50%     6.000000   7.000000   8.000000   9.000000
75%     9.000000  10.000000  11.000000  12.000000
max    12.000000  13.000000  14.000000  15.000000
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章