美文网首页我爱编程
说说Python中的pandas模块(1)

说说Python中的pandas模块(1)

作者: Ryan_Yang | 来源:发表于2017-05-22 01:01 被阅读0次

Pandas是Python中最常用的数据分析模块,其强大的数据读写性能,丰富的可视化工具,便捷的数据切片及索引功能让Pandas成为了一个Python标准化模块。从个人的使用感受而言,Pandas的确是一个必学的数据分析模块,今天顺便来复习一下吧。

1. Load Pandas and read a csv file:
import pandas as pd

data = pd.read_csv('rhythm.csv')
print data

output:
   A  B  C  D
0  1  2  3  4
1  2  2  3  4
2  3  2  3  4
3  4  2  3  4
4  5  2  3  4
5  6  2  3  4
6  7  2  3  4
7  8  2  3  4
  1. 数据选择及切片
In[5]: data['A']
Out[5]: 
0    1
1    2
2    3
3    4
4    5
5    6
6    7
7    8
Name: A, dtype: int64

In[7]: data[['A','B’]]         
Out[7]: 
   A  B
0  1  2
1  2  2
2  3  2
3  4  2
4  5  2
5  6  2
6  7  2
7  8  2

In[8]: data[['B','A']]
Out[8]: 
   B  A
0  2  1
1  2  2
2  2  3
3  2  4
4  2  5
5  2  6
6  2  7
7  2  8
#注意,不能直接以data[‘A’,’B’]进行多列的选择```


Pandas 现在有个问题就是,如果没有header,就非常难以选择某列数据,比如我想选择第二列数据,但是我不知道第二列数据的header,这个时候怎么办呢?这个时候有两种办法:

* 第一是在读入数据时,就给你的data frame进行headers的命名:

data = pd.read_csv(‘rhythm.cv', names = [‘A’,’B’,’C’,’D’])

or

data.columns = [‘A’,’B’,’C’,’D']

* 第二是调用iloc()函数,例如我想截取第二列 (‘B’列)

In[12]: data.iloc[:,1] #记住python总以0开头
Out[12]:
0 2
1 2
2 2
3 2
4 2
5 2
6 2
7 2
Name: B, dtype: int64

通过.iloc()函数,我们甚至可以肆无忌惮的截取任意位置的数据:

In[14]: data.iloc[[0,2,4],1:3]
Out[14]:
B C
0 2 3
2 2 3
4 2 3

3. 过滤及索引
接下来我们说说data frame的过滤以及索引功能,举个栗子,加入我们现在想选出A列数字大于或者等于5的行,我们可以进行如下操作:

In[15]: data[data.A>=5]
Out[15]:
A B C D
4 5 2 3 4
5 6 2 3 4
6 7 2 3 4
7 8 2 3 4

或者设定多个筛选条件:

In[16]: data[(data.A >= 5) & (data.A <= 7)]
Out[16]:
A B C D
4 5 2 3 4
5 6 2 3 4
6 7 2 3 4

我们也可以调用isin()函数来对某些值进行特定选择

In[20]: data2[data2['A'].isin([3,6,7])]
Out[20]:
A B C D
2 3 2 3 4
5 6 2 3 4
6 7 2 3 4

今天暂时先说到这里,下一篇我们继续讨论pandas的一些进阶操作,一下提供一些常用的描述性函数作为参考:

In[21]: data.head()
Out[21]:
A B C D
0 1 2 3 4
1 2 2 3 4
2 3 2 3 4
3 4 2 3 4
4 5 2 3 4

In[23]: data.tail(1)
Out[23]:
A B C D
7 8 2 3 4

In[24]: data.describe()
Out[24]:
A B C D
count 8.00000 8 8 8
mean 4.50000 2 3 4
std 2.44949 0 0 0
min 1.00000 2 3 4
25% 2.75000 2 3 4
50% 4.50000 2 3 4
75% 6.25000 2 3 4
max 8.00000 2 3 4

In[26]: data.dtypes
Out[26]:
A int64
B int64
C int64
D int64
dtype: object








相关文章

网友评论

    本文标题:说说Python中的pandas模块(1)

    本文链接:https://www.haomeiwen.com/subject/ulxbxxtx.html