pandas打印某一列_零基础学Python--强大的Pandas

e12eb7d816a4cf6415f7f50567b9442a.png

说到Pandas,对于做数据分析和处理以及机器学习的同学,可以说是大名鼎鼎。我们可以用Pandas这个开源的Python包来做什么呢?可以做的事情太多了,以至于很多人可能只会用到其功能的一部分。

在Python的世界里,像这样的软件包可以说是非常的多,这也是为什么Python的用途如此之广的原因。看过我前面的文章的同学可能还记得,我们在讲列表的时候,用读取普通文件的方式去读取了一个CSV格式的文件。可能有些同学不清楚CSV是一个什么样的格式?其实很简单,它类似于Excel,不过分隔符是逗号。

本文我们将用Pandas来读取文件,并进行一些基本处理,让大家对Pandas来有一个基本的概念。我们仍然使用上次使用过的文件,但我们进行一些少许的删除修改,以方便大家查看和拷贝,文件内容如下。

date,open,high,low,close19991110,29.5,29.8,27.0,27.7519991111,27.58,28.38,27.53,27.7119991112,27.86,28.3,27.77,28.0519991115,28.2,28.25,27.7,27.7519991116,27.88,27.97,26.48,26.5519991117,26.5,27.18,26.37,27.1819991118,27.2,27.58,26.78,27.0219991119,27.5,27.53,26.8,26.8819991122,26.88,26.95,26.3,26.4519991123,26.45,26.55,26.1,26.45

我们仍然是用这样一个OHLC的数据来做示例,大家可以看到这个文件每一列对应有相应的名称,现在来看看如何用Pandas来读取这个文件。

import pandas as pdfile = 'ohlcv.txt'df = pd.read_csv(file)print(df)

就这么简单的两行代码,就可以将CSV格式文件的内容读出到一个Pandas的Dataframe中。我们来看看结果是怎么样的。注意我们这里使用四个‘>’符号来表示一个缩进。

>>>>date open high low close0 19991110 29.50 29.80 27.00 27.751 19991111 27.58 28.38 27.53 27.712 19991112 27.86 28.30 27.77 28.053 19991115 28.20 28.25 27.70 27.754 19991116 27.88 27.97 26.48 26.555 19991117 26.50 27.18 26.37 27.186 19991118 27.20 27.58 26.78 27.027 19991119 27.50 27.53 26.80 26.888 19991122 26.88 26.95 26.30 26.459 19991123 26.45 26.55 26.10 26.45

我们现在将Pandas读取出来了,那么我们接下来如何对它进行访问和处理呢?其实也很简单,我们来看一些基本的操作!

获得一整列的值

import pandas as pdfile = 'ohlcv.txt'df = pd.read_csv(file)print(df['date'])

运行结果:

0 199911101 199911112 199911123 199911154 199911165 199911176 199911187 199911198 199911229 19991123Name: date, dtype: int64

我们可以看到,最后打印出了这一列的Name和类型。

访问某行某列的元素

import pandas as pdfile = 'ohlcv.txt'df = pd.read_csv(file)print(df['date'][3])

运行结果:

19991115

获得某一行的所有元素

import pandas as pdfile = 'ohlcv.txt'df = pd.read_csv(file)print(df.loc[3,:])

其中loc是Pandas中用的比较多的,另外还有iloc是用index来进行定位的。有很多种不一样的用法,我们后面会专题来介绍。本文我们仅仅做一个初步的了解。

运行结果:

date 19991115.00open 28.20high 28.25low 27.70close 27.75Name: 3, dtype: float64

我们可以看到读取出来的date的类型变成了浮点类型,实际使用的过程中我们可以指定类型,这部分后面会专题来讲一些技巧。

删除一列

import pandas as pdfile = 'ohlcv.txt'df = pd.read_csv(file)print(df.drop('close', axis=1)) 

运行结果:

>>>> date open high low0 19991110 29.50 29.80 27.001 19991111 27.58 28.38 27.532 19991112 27.86 28.30 27.773 19991115 28.20 28.25 27.704 19991116 27.88 27.97 26.485 19991117 26.50 27.18 26.376 19991118 27.20 27.58 26.787 19991119 27.50 27.53 26.808 19991122 26.88 26.95 26.309 19991123 26.45 26.55 26.10

删除一行

import pandas as pdfile = 'ohlcv.txt'df = pd.read_csv(file)print(df.drop(df.index[1])) 

运行结果:

 date open high low close0 19991110 29.50 29.80 27.00 27.752 19991112 27.86 28.30 27.77 28.053 19991115 28.20 28.25 27.70 27.754 19991116 27.88 27.97 26.48 26.555 19991117 26.50 27.18 26.37 27.186 19991118 27.20 27.58 26.78 27.027 19991119 27.50 27.53 26.80 26.888 19991122 26.88 26.95 26.30 26.459 19991123 26.45 26.55 26.10 26.45

我们可以看到,index为1这一行被删除了!在后面的文章里面我们会讲到如何重新进行索引,这里我们暂时不关注。

判断Dataframe是否为空

import pandas as pdfile = 'ohlcv.txt'df = pd.read_csv(file)print(df.empty) 

运行结果:

False

修改某行某列的值

import pandas as pdfile = 'ohlcv.txt'df = pd.read_csv(file)df.at[1, 'date'] = 20190318print(df)

运行结果:

>>>>date open high low close0 19991110 29.50 29.80 27.00 27.751 20190318 27.58 28.38 27.53 27.712 19991112 27.86 28.30 27.77 28.053 19991115 28.20 28.25 27.70 27.754 19991116 27.88 27.97 26.48 26.555 19991117 26.50 27.18 26.37 27.186 19991118 27.20 27.58 26.78 27.027 19991119 27.50 27.53 26.80 26.888 19991122 26.88 26.95 26.30 26.459 19991123 26.45 26.55 26.10 26.45

接下来我们来看如何把Pandas Dataframe重新写入到CSV文件中。

import pandas as pdfile = 'ohlcv.txt'df = pd.read_csv(file)df.at[1, 'date'] = 20190318df['factor'] = 1.0df.to_csv(file, index=False)

我们可以看到文件的内容变为:

date,open,high,low,close,factor19991110,29.5,29.8,27.0,27.75,1.020190318,27.58,28.38,27.53,27.71,1.019991112,27.86,28.3,27.77,28.05,1.019991115,28.2,28.25,27.7,27.75,1.019991116,27.88,27.97,26.48,26.55,1.019991117,26.5,27.18,26.37,27.18,1.019991118,27.2,27.58,26.78,27.02,1.019991119,27.5,27.53,26.8,26.88,1.019991122,26.88,26.95,26.3,26.45,1.019991123,26.45,26.55,26.1,26.45,1.0

对,除了修改了第1行的日期,我们还添加了一列Factor值全部为1.0。

对Pandas的理解我们就讨论到这里,目的主要是为了让大家有一个基本的认识。其实大家可以看到区区几行代码,已经做了我们用其他语言几百上千行代码的事情。我想如果阅读了我前面的文章的同学看到这里,应该会对Python产生了浓厚的兴趣。从文章的内容,大家也应该可以发现Python真的是非常的简单,也非常的容易入门和学习的一门语言。其实,深度学习也是一样,大家讳莫如深的人工智能和深度学习,我们从应用的角度来讲,也是一门跨行业跨领域都可以学习的技术。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值