pandas常见用法

pandas在kaggle比赛中比较常见,基本上所有的数据都会读入pandas,然后在pandas里面进行各种特征工程,包括特征筛选,特征组合等等。下面列出常见的pandas用法。

目录

一、数据的读取与保存

二、DataFrame中的列对象-Series

2.1 Series对象的创建                               ​

2.2 Series对象的一些属性和方法

三、DataFrame中的行对象-index

3.1 索引的创建与重新索引

3.2 索引的选取与过滤

四、DataFrame的常见用法

4.1 取DataFrame的行列数据

4.2 DataFrame的一些描述信息

参考文献


一、数据的读取与保存

注:pandas读取数据非常复杂,这里仅仅是最简单最基本的读取方法,仅仅能够读入kaggle里面的数据集,如果想了解更多方法,请阅读pandas文档

# 读入ex1.csv文件
df = pd.read_csv('ex1.csv')

df内容如下:
a b c d message
0 1 2 3 4 hello
1 5 6 7 8 world
2 9 10 11 12 foo

如果读入的数据没有标题行,需要自己添加标题行,数据如下,需要读入该数据:

                                      

有两种读入方法
1. 用默认的标题行
pd.read_csv('ex1.csv',header=None)

2.指定对应的标题行
pd.read_csv('ex1.csv',names=['a','b','c','d','message'])

结果如下:

                                         

# 数据的保存
# 读入ex1.csv,并保存到test.csv中。
a = pd.read_csv('ex1.csv',names=['a','b','c','d','message'])
a.to_csv('test.csv')

这样保存的csv,一般有前面的索引,如下:

                                    

如果不想保存索引,可以用下面的方法,这样保存的文件就不会有前面的索引:

a.to_csv('test.csv',index=False)

二、DataFrame中的列对象-Series

DataFrame是一个二维的表结构,而其中的每一列是一个一维结构,即Series。它是有一组类似的数组的数据和一组标签组成。

2.1 Series对象的创建

# Series对象有两种创建方式
# 1 直接创建

# 创建的时候不指定索引,索引为0,1,2....
obj = pd.Series([4,7,-5,3])

# 创建的时候制定索引,索引为d,b,a,c
obj2 = pd.Series([4,7,-5,3],index=['d','b','a','c'])


# 2 字典创建
data = {'d': 4, 'b': 7, 'a': -5, 'c': 3}
obj3 = pd.Series(data=data)

输出结果如下:

                                      

2.2 Series对象的一些属性和方法

1.name属性,Series序列有一个name属性,这个属性就是给这个Series取个名字,如果从DateFrame里面取出一列,就会看到name属性正好是DataFrame对应的列名。

2.index方法,value方法返回Series对应的索引和值

                                              

三、DataFrame中的行对象-index

3.1 索引的创建与重新索引

# 索引对象的创建
labels = pd.Index(np.arange(4))

labels输出结果:
Int64Index([0, 1, 2, 3], dtype='int64')

# 用索引对象创建Series对象
obj = pd.Series(data=[5,3,2,1],index=labels)

输出结果为:
0    5
1    3
2    2
3    1
dtype: int64

# 重新排列索引
obj = pd.Series([4.5, 7.2, -5.3, 3.6], index=['d', 'b', 'a', 'c'])
obj的输出结果:
d    4.5
b    7.2
a   -5.3
c    3.6
dtype: float64

# 将索引顺序排列为a,b,c,d
obj.reindex(['a','b','c','d'])
输出结果为:
a   -5.3
b    7.2
c    3.6
d    4.5
dtype: float64

注:索引为不可修改的对象:

index = obj.index

index[0]=2试图修改索引就会报如下错误:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-25-58207ab66cb0> in <module>
----> 1 index[0]=2

d:\python\lib\site-packages\pandas\core\indexes\base.py in __setitem__(self, key, value)
   3936 
   3937     def __setitem__(self, key, value):
-> 3938         raise TypeError("Index does not support mutable operations")
   3939 
   3940     def __getitem__(self, key):

TypeError: Index does not support mutable operations

3.2 索引的选取与过滤

                                  

四、DataFrame的常见用法

4.1 取DataFrame的行列数据

# 创建DataFrame对象
data = {'state': ['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada', 'Nevada'],
        'year': [2000, 2001, 2002, 2001, 2002, 2003],
        'pop': [1.5, 1.7, 3.6, 2.4, 2.9, 3.2]}

frame = pd.DataFrame(data)

                                                             

输出DataFrame中的列信息

                                      

输出DataFrame中行的信息:

                                  

也可以用loc取某一列:

                                                                  

利用drop删除指定行,指定列的消息:

                                                           

4.2 DataFrame的一些描述信息

# 创建DataFrame
data ={'x1':[1,2,3,4,5,6,7],
       'x2':[2,4,6,8,10,12,14],
       'y':[3,6,9,12,15,18,21]}

frame = pd.DataFrame(data)

下面是一些常见的描述DataFrame的信息:

                                                        

下面是一些常见的统计信息:

                                                           

在kaggle比赛中,经常会用以下函数来查看相关性

# 查看各个变量和y的相关性系数,由于x1,x2,y是线性关系,所以相关系数为1
frame.corr()['y']

x1    1.0
x2    1.0
y     1.0
Name: y, dtype: float64

参考文献

简书:利用python进行数据分析-第二版

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值