2016 - 2024

感恩一路有你

python 访问列表 python如何读取并显示数据表中的中文?

浏览量:2658 时间:2023-05-02 20:55:59 作者:采采

python如何读取并显示数据表中的中文?

是从一个识别器,将它的数据接受一个识别,接着再去无法读取装换为中文

如何在Python的列表中添加变量?

#因为就向列表再添加变量是会将变量的值先添加到list里面,而不是将变量名再添加到list里面#所以才可试图以下做法#定义变量a

1b

2c

3d

4#再添加变量的字符串名字vars[](

python字典怎么访问条目?

可以不按照遍历数组去访问

fork,vin字典.items()方法,k为字典的键,v为值

同理可知,还有一个这种

forkacross字典.keys()循环遍历所有的键

forvin字典.values()遍历过程所有的值

访问网络某一特定的值:

字典[键]键不存在的话会报错

字典.try(键)键不未知赶往空值None

如何使用Python Pandas模块读取各类型文件?

Python的pandas库是使Python拥有作用于数据分析的如此出色编程语言的一件事。Pandas使导入,分析和可视化数据变得更加更加很难。它建立起在NumPy和matplotlib之类的软件包的基础上,使您也可以比较方便地参与大部分数据分析和可视化工作。

在此Python数据科学教程中,我们将在用EricGrinstein抓取的数据,使用Pandas总结依附流行的视频游戏评论网站IGN的视频游戏评论。哪个主机赢得了“控制台大战”(就游戏的审查而言)?该数据集将指导我们得出答案答案。

当我们分析什么视频游戏评论时,我们将清楚关键的Pandas概念,的或索引。您也可以再继续并且开去,并在我们的许多其他Python教程之一中或是从去注册PythonPandas课程来所了解有关Python和Pandas的更多信息。我们的许多其他数据科学课程也都可以使用Pandas。

谨记下,本教程可以使用Python3.5c语言程序,并使用JupyterNotebook构建体系。您肯定不使用的是Python,pandas和Jupyter的更新版本,但而应该是基本同一。

用Pandas导入数据

如果不是您正准备可以使用本教程,则不需要下载数据集,您也可以在此处接受你操作。

我们将采取什么措施的最先是读取数据。数据以逗号连成一体的值或csv文件存储,其中每一行用换行互相连通,每列用逗号(,)分隔。这是ign.csv文件的前几行:

如您在上方看见了的,文件中的每一行代表一个游戏,该游戏早过IGN审查。这些列包涵关联该游戏的信息:

1)score_phrase—IGN如何用一个词可以形容游戏。这链接到它收到的分数。

2)title-游戏名称。

3)url—您可以不在其中打开系统发下评论的URL。

4)platform-审查游戏的平台(PC,PS4等)。

5)score—游戏的得分多,从1.0到10.0。

6)genre—游戏类型。

7)editors_choice-N如果没有游戏不是编辑选择的Y话,这样的话是。这与得分直接的联系。

8)release_year-游戏公告的年份。

9)release_month-游戏先发布的月份。

10)release_day-游戏发布的那天。

另外一个前导列,其中包涵行索引值。我们可以不放心好了地遗漏掉此列,但稍后将深入的探讨哪些索引值。

就是为了在Python和pandas中最有效地一次性处理数据,我们必须将csv文件读取到PandasDataFrame中。DataFrame是表示和处理表格数据的一种,表格数据是表格形式的数据,.例如电子表格。表格数据本身行和列的格式,就像我们的csv文件差不多,只不过如果我们可以不将其才是表格栏里点,则来说更易被写作和排序。

目的是输入数据数据,我们不需要在用_csv函数。此函数将能接收一个csv文件并返回一个DataFrame。200以内代码将:

a.导入到pandas库。我们将其拓展名为,pd以便越快地键入。这是数据分析和数据科学中的标准约定,您经常会会看见导入的Pandas看上去像pd其他人的代码一样。

b.读ign.csv入一个DataFrame,并将结果未分配给一个名为的新变量,reviews以备万一我们也可以reviews为了引用我们的数据。

再读DataFrame后,以更直观的查查我们所获得的内容将很有帮助。Pandas更方便地为我们提供了两种方法,也可以飞速地将数据打印出来到表中。这些功能是:

1)DataFrame.head()—打印出来DataFrame的前N行,其中N是您作为参数传达给函数的数字,即DataFrame.head(7)。如果不是不传信任何参数,则默认值为5。

2)DataFrame.tail()—打印出来DataFrame的后来N行。同样的,默认值为5。

我们将可以使用该head方法查看其中的内容reviews:

我们还也可以不能访问属性,以打开系统以下行reviews:

如我们所见,所有内容均已真确读取文件-我们有18,625行和11列。

与相似的NumPy这样的Python软件包相比较,建议使用Pandas的一大优势是Pandas允许我们强大本身完全不同数据类型的列。在我们的数据几乎全部,reviews我们有存储浮点值(如)score,字符串值(如score_phrase)和整数(如)的列release_year,因此在此处可以使用NumPy会很难了,但Pandas和Python也可以非常好地处理它。

现在我们也真确地读取文件了数据,让我们又开始建立索引reviews以某些所需的行和列。

用Pandas索引DataFrames

之前,我们使用了该head方法来不打印的第一5行reviews。我们这个可以使用方法结束虽然的事情。该iloc方法容许我们按位置检索到行和列。这一点,我们需要更改所需行的位置这些所需列的位置。下面的代码将reviews.head()按照选择行0到5,和数据集中的所有列来复制我们的结果:

让我们更深入地去研究我们的代码:我们委托了想的rows0:5。这意味着我们要想从position0到(但不除开)position的行5。

第一行被如果说是在位置0,因为你选择行0:5给了我们行的位置0,1,2,3,和4。我们也不需要所有列,因此建议使用快捷来你选它们。它的工作是这样的:要是我们不比较喜欢第一个位置值,比如:5,那是假设不成立我们的意思0。假如我们忽略了那个位置值(如)0:,则假定我们是指DataFrame中的最后一行或之后一列。我们不需要所有列,并且只更改了一个冒号(:),没有任何位置。这使我们的列从0到最后一列。以下是一些索引示例和结果:

1)[:5,:]—第一5行,在内这些行的所有列。

2)[:,:]—整个DataFrame。

3)[5:,5:]—从位置5又开始的行,从位置开始的列5。

4)[:,0]—第一列,在内该列的所有行。

5)[9,:]—第十行,这些重庆农商行的所有列。

按位置索引与NumPy索引非常相似。如果您想所了解更多信息,是可以阅读理解我们的NumPy教程。现在我们清楚了要如何按位置索引,让我们删出第一列,该列没有任何有用的信息:

在Pandas中在用标签在Python中确立索引

既然我们明白要如何按位置检索行和列,那就值得你去爱研究什么使用DataFrames的另一种主要注意方法,即按标签检索系统行和列。与NumPy相比较,Pandas的主要注意优势只是相对而言,每一列和每一行也有一个标签。这个可以一次性处理列的位置,但没法监视哪个数字填写于哪个列。

我们可以不使用方法处理标签,该方法容许我们在用标签而不是位置接受索引。我们可以reviews建议使用100元以内loc方法显示前五行:

上面的内容实际上与却没太大的不同[0:5,:]。这是而且但他行标签也可以需要任何值,但我们的行标签与位置完全匹配。您这个可以在上方表格的最左侧看见行标签(它们以粗体不显示)。您还也可以是从ftp连接DataFrame的index属性来打开系统它们。我们将没显示的行索引reviews:

Int64Index([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,...],dtypeint64)

当然了,索引不肯定会时总与位置版本问题。在下面的代码单元中,我们将:

a.获取行10至行20的reviews,并分配结果some_reviews。

b.不显示的第一5行some_reviews。

如上所示,在中some_reviews,行索引始于,10结束于20。因此,接触loc不使用小于等于10或大于1的数字20将造成错误:

some_reviews.loc[9:21,:]

通常而言,在不使用数据时,列标签是可以使工作变的越来越很快。我们这个可以在loc方法中委托列标签,以按标签而又不是按位置检索系统列。

我们还可以传入列表来第二次指定多个列:

Pandas系列对象

我们可以通过几种有所不同的在Pandas中检索单个列。到目前,我们早看到了两种语法:

1)[:,1]—将检索第二列。

2)reviews.loc[:,score_phrase]—还将检索数据库第二列。

也有第三种甚至连更太容易的方法来检索整列。我们可以不在方括号中更改列名称,.例如使用字典:

我们还这个可以是从100元以内方法建议使用列列表:

当我们检索到单个列时,虽然是在检索系统Pandas Series对象。DataFrame存储表格数据,而Series存储数据的单列或单行。

我们也可以验证单个列是否是为系列:

我们可以半自动创建系列以更合适地所了解其工作原理。要创建战队一个Series,我们在构造函数它时将一个列表或NumPy数组传达消息给Series对象:

系列是可以包涵任何类型的数据,以及混合类型。在这里,我们创建家族一个包涵字符串对象的系列:

在Pandas中创建家族一个DataFrame

我们这个可以按照将多个Series传递到DataFrame类中来创建DataFrame。在这里,我们传来网刚创建的两个Series对象,

s1充当第一行,s2另外第二行:

我们还也可以建议使用列表列表成功同时的事情。每个内部列表在结果DataFrame中被纳入一行:

我们是可以在创建战队DataFrame时委托列标签:

这些行标签(索引):

还请注意,不要窝进和另的行。我们已经以这种编译程序了代码,以使其更易于解析,但您经常会遇到将它们全部写成一行的情况。或者,200元以内代码将产生与我们在本段上方的表中见到的结果彻底完全相同的结果:

不管怎么说,再添加标签后,便也可以使用它们对DataFrame接受索引:

columns如果不是将字典传递给DataFrame构造函数,则可以不到后面指定你关键字参数的操作。这将自动设置里列名称:

PandasDataFrame方法

如前所述,dataframeDataFrame中的每一列全是Series对象:

我们可以在Series对象上内部函数与在DataFrame上可以动态链接库的大多数完全相同的方法,除开head:

PandasSeries和DataFrames还具高其他使可以计算更简单方法。比如,我们也可以使用方法来里查Series的均值:

我们还这个可以动态创建类似的方法,该方法默认情况下将中搜索DataFrame中每个数字列的平均值:

我们可以不如何修改axis关键字参数以mean计算每行或每列的平均值。默认情况下,axis等于零0,并将换算每列的平均值。我们还可以将其设置1为计算出每行的平均值。请尽量,这只会计算每行中数值的平均值:

(axis1)

0510.500

1510.500

2510.375

3510.125

4510.125

5509.750

6508.750

7510.250

8508.750

9509.750

10509.875

11509.875

12509.500

13509.250

14509.250

...

18610510.250

18611508.700

18612509.200

18613508.000

18614515.050

18615515.050

18616508.375

18617508.600

18618515.025

18619514.725

18620514.650

18621515.000

18622513.950

18623515.000

18624515.000

Length:18625,dtype:float64

Series和DataFrames上有很多类似于的方法obviously。这里有一些方便的东西:

1)—查看DataFrame中各列之间的相关性。

2)—算出每个DataFrame列中非空值的数量。

3)—在每一列中能找到的最值。

4)—直接输入每一列中的最小值。

5)—中搜索每列的中位数。

6)—查找每列的标准偏差。

或者,我们也可以在用该corr方法查找如何确定有任何列与关联score。这是可以帮帮我们最近查找的游戏获得了更高的评价(release_year),应该在年底之前查找的游戏我得到了更好的评分(release_month):

正如我们在上面看到的那样的话,我们的数字列都是没有与关联score,并且我们知道发布时间与评论评分根本不线性无关。

DataFrameMath与Pandas

我们还可以不使用pandas在Python中的Series或DataFrame对象上先执行数算。的或,我们可以将score列中的每个值除以2以将刻度从0–切换到10到0–5:

reviews[score]/2

04.50

14.50

24.25

34.25

44.25

53.50

61.50

74.50

81.50

93.50

103.75

113.75

123.50

134.50

144.50

...

186103.00

186112.90

186123.90

186134.00

186144.60

186154.60

186163.75

186174.20

186184.55

186193.95

186203.80

186214.50

186222.90

186235.00

186245.00

Name:score,Length:18625,dtype:float64

所有广泛的数算符在Python的工作,如,-,*,/,和^将在系列或DataFrames大Pandas的工作,但是将适用于每一个元素在一个数据帧或一个系列。

Pandas中的布尔索引

现在我们早了解了一些Pandas的基础知识,让我们再参与分析。我们前面看见了的,换算下来都在值的score列reviews左右7。要是我们想可以找到所有罚球得分都高于平均水平的游戏该怎么办啊?

我们是可以先接受比较。比较好会将“系列”中的每个值与重新指定值进行也很,然后把生成一个“系列”,其中包含可以表示比较比较状态的布尔值。使用Python Pandas分析什么视频游戏数据的或,找到了哪些行的score值大于7:

score_filterreviews[score]dstrok7

score_filter

0True

1True

2True

3True

4True

5False

6False

7True

8False

9False

10True

11True

12False

13True

14True...

18610False

18611False

18612True

18613True

18614True

18615True

18616True

18617True

18618True

18619True

18620True

18621True

18622False

18623True

18624True

Name:score,Length:18625,dtype:bool

有了布尔系列后,我们也可以在用它来你选择DataFrame中该系列包含value的行True。所以我,我们只有选择类型行reviews,其中score大于07:

这个可以不使用多个条件参与过滤。打比方我们要中搜索根据发行新Xbox One的得分超过的游戏7。在下面的代码中,我们:

a.系统设置两个条件的过滤器:

1)检查有无score大于07。

2)检查有无platform大小关系Xbox One

b.应用过滤器以reviews仅资源所需的行。

c.在用head方法不打印的第一5行filtered_reviews。

在使用多个条件并且过滤时,将每个条件放在括号中用长一个amp符号(amp)连成一体是很重要的是的。

Pandas图

现在我们很清楚如何水中的杂质,我们这个可以创建角以观察的回顾广泛分布Xbox One与的回顾分布PlayStation 4。这将解决我们判断哪个控制台具备更好的游戏。

我们可以通过直方图来能做到这一点,该直方图将绘制的不同得分范围内的频率。我们是可以使用方法为每个控制台制做一个直方图。该方法利用幕后的流行Python绘图库matplotlib生成美观的绘图。

该plot方法设置为为手工绘制折线图。我们需要传入关键字参数kindhist来绘制图直方图。在下面的代码中,我们:

a.拨打%matplotlibinline以在Jupyter笔记本中可以设置绘图。

b.过滤reviews以仅包含关联的数据Xbox One。

c.绘制的score列。

我们也可以不对PS4:

从我们的直方图中更说明,与两者相比,PlayStation 4具有更高评级的游戏Xbox One。

看样子,这只是冰山一角,涉及到我们是可以用来总结该数据集的潜在因素方向,但我们已经有了一个很好的开端:我们早就在用Python和pandas导入了数据集,并要会了在用各种相同的索引方法选择我们想要的数据点,并进行了一些飞速的探索性数据分析,以回答我我们开始时遇到的问题。

数据 方法 Pandas DataFrame

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。