机器学习——Python

机器学习Python——pandas取行、列、切片

2018-09-03  本文已影响0人  tomji
# -*- coding: utf-8 -*-
import numpy as np 
import pandas as pd

data = DataFrame(np.arange(20).reshape(4,5),index = list("ABCD"),columns=list('vwxyz'))
'''
    v   w   x   y   z
a   0   1   2   3   4
b   5   6   7   8   9
c  10  11  12  13  14
d  15  16  17  18  19
'''
print(data[0:3])  # 取前三行数据
'''
    v   w   x   y   z
a   0   1   2   3   4
b   5   6   7   8   9
c  10  11  12  13  14
'''
print(len(data))  #统计表格行数  4
print(data.columns.size)  #统计表格列 5
print(data.columns)  #列索引名称
# Index(['v', 'w', 'x', 'y', 'z'], dtype='object')
print(data.index) #行索引名称
# Index(['a', 'b', 'c', 'd'], dtype='object')
print(data.ix[1])  #取第二行数据
'''
v    5
w    6
x    7
y    8
z    9
'''
print(data.iloc[1])  #取第2行数据
'''
v    5
w    6
x    7
y    8
z    9
'''
print(data['x'])  #取列索引为x的一列数据
'''
a     2
b     7
c    12
d    17
'''
print(data.loc['a'])  #取第行索引为'a'的一行数据
'''
v    0
w    1
x    2
y    3
z    4
'''
print(data.loc[:,['w','y']])  #表示选取所有的行以及columns为'w','y'的列
'''
    w   y
a   1   3
b   6   8
c  11  13
d  16  18
'''
print(data.loc[['b','c'],['w','y']])  #表示选取'b'和'c'这两行以及columns为'w','y'的列的并集
'''
    w   y
b   6   8
c  11  13
'''
print(data.iloc[1:3,2:5])  #数据切片操作,切连续的数据块
'''
    x   y   z
b   7   8   9
c  12  13  14
'''
print(data.iloc[[0,2,3],[1,3,4]])  #即可以自由选取行位置,和列位置对应的数据,切零散的数据块
'''
    w   y   z
a   1   3   4
c  11  13  14
d  16  18  19
'''
print(data[data>2])  #表示选取数据集中大于2的数据
'''
      v     w     x   y   z
a   NaN   NaN   NaN   3   4
b   5.0   6.0   7.0   8   9
c  10.0  11.0  12.0  13  14
d  15.0  16.0  17.0  18  19
'''
print(data[data.w>5])  #表示选取数据集中'w'这一列大于5的所有的行
'''
    v   w   x   y   z
b   5   6   7   8   9
c  10  11  12  13  14
d  15  16  17  18  19'''

a1=data.copy()
print(a1[a1['y'].isin(['8','13'])])  #表显示满足条件:列'y'中的值包含'8','13'的所有行
'''
    v   w   x   y   z
a   0   1   2   3   4
b   5   6   7   8   9
c  10  11  12  13  14
d  15  16  17  18  19
-------------------------
    v   w   x   y   z
b   5   6   7   8   9
c  10  11  12  13  14
'''
print(data.mean())  #默认对每一列的数据求平均值;若加上参数data.mean(1)则对每一行求平均值
'''
v     7.5
w     8.5
x     9.5
y    10.5
z    11.5
'''
print(data['x'].value_counts())  #统计某一列x中各个值出现的次数
'''
7     1
12    1
2     1
17    1
'''
print(data.describe())  #对每一列数据进行统计,包括计数,均值,std,各个分位数等
'''
               v          w          x          y          z
count   4.000000   4.000000   4.000000   4.000000   4.000000
mean    7.500000   8.500000   9.500000  10.500000  11.500000
std     6.454972   6.454972   6.454972   6.454972   6.454972
min     0.000000   1.000000   2.000000   3.000000   4.000000
25%     3.750000   4.750000   5.750000   6.750000   7.750000
50%     7.500000   8.500000   9.500000  10.500000  11.500000
75%    11.250000  12.250000  13.250000  14.250000  15.250000
max    15.000000  16.000000  17.000000  18.000000  19.000000
'''
data.to_excel(r'./data.xls',sheet_name='Sheet1')  #数据输出至Excel
上一篇 下一篇

猜你喜欢

热点阅读