![Python数据分析实战:从Excel轻松入门Pandas](https://wfqqreader-1252317822.image.myqcloud.com/cover/473/47216473/b_47216473.jpg)
1.2.4 数据结构
Python中常用的数据结构有6种:数字、字符串、列表、元组、集合和字典。其中使用频率较高的是数字、字符串、列表和字典。
1.数字
数字(number)有4种类型,分别为int(整数)、float(小数)、complex(复数)和bool(布尔值)。其中bool只有True和False两种值,True和False本质是数字1和0,可以使用type()函数查询类型,示例代码如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P17_14412.jpg?sign=1738890748-zEeCKFds7dQpNe5frDAMqo7ZLgljcSNj-0-ef80f5e7601215174581371480a1a908)
运行结果如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P17_14413.jpg?sign=1738890748-5TjzmgVoAsq9M52Fm6xpJAdPVfM2biSN-0-5fc1796fe9a6be3d58c89ac980157eb0)
2.字符串
字符串(string)的组成内容可以是数字、字母、汉字和符号等任何可以在计算机上表示出来的一串字符。字符串放置在一对单引号(')或双引号(")中,示例代码如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P17_14414.jpg?sign=1738890748-ziQoTXn7kNf5FB0jtMzbTAWLxXHPJkU2-0-6bf8c148c440a208fcedc80bee6378db)
运行结果如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P18_14462.jpg?sign=1738890748-zQagrx4V2BFpBq12cH1p0zRHWzC1wEC0-0-a18ad14977fcba0dbbccfe4b3f21f521)
注意:在表示字符串时,最好统一使用一种字符串表示方式,本书均采用单引号的方式来引用字符串。如果字符串中有特殊字符,但希望具有普通意义,而不具有特殊意义,就需要在字符串左侧加r。例如'\n'将被视为换行符,而r'\n'将被视为\后跟的字符n。
要获取字符串中的某部分字符串,可以通过切片方式来截取。在对字符串切片时默认的起始位置为0。下面罗列了几种基本的切片方式,用户可以根据这些切片原则衍生出更多的切片方法,示例代码如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P18_14463.jpg?sign=1738890748-2T9cBlONHnCwdN81piH0vfJtLlVpJ3Z6-0-3d2b035c1ae8d37a3172d813a251b6ba)
运行结果如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P18_14464.jpg?sign=1738890748-v4bNNEoIk9vJTj0ZcfRLpaIpbbTZ7VRD-0-73a052d4a3393270c5ece2cdcc718313)
3.列表
列表(list)可有序地存储一组数据元素。数据元素置于一对中括号之间,元素之间用英文半角逗号分隔,如[1,2,3]。列表中的元素可以是任何数据类型,并且可以对列表进行修改,下面讲解常用操作。
1)列表的添加
使用append()函数向列表末尾添加单个元素,也可以使用extend()函数向列表末尾添加多个元素,示例代码如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P18_14465.jpg?sign=1738890748-Q6pM0u6iC7YHJeuXQHbZeElFXLkpEXMr-0-86bf8a258943d5ec90564350b9dd7df5)
运行结果如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P19_14517.jpg?sign=1738890748-cCegkY8JIi5ac7yOBZwVk82t422tU8U4-0-f69a335b2ae6cba1f670728907e90a2d)
2)列表的删除
使用pop()函数删除列表中指定下标对应的元素,也可以使用remove()函数删除列表中指定名称的元素,如果列表中有多个相同名称的元素,则只删除第1个,示例代码如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P19_14518.jpg?sign=1738890748-rrYVB87KbERzYnxxS6AOQiCRNV8lhtrh-0-06f1fcb69c8c5721cd56969c663eaaac)
运行结果如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P19_14519.jpg?sign=1738890748-2SqoUEAGpk1xTVg3z3p47FGtiW2mNinT-0-f23936cfed53415a6e32631624c166dc)
3)列表的切片
列表的切片与字符串的切片方式一样,通过指定列表的下标完成切片操作,下面罗列了常见的列表切片方式,示例代码如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P19_14520.jpg?sign=1738890748-lkTpz8NMSYrjnrnszR3TV47snJ6z4VS6-0-7cd8436e1d2c8430c542c42e5f5bf5ec)
运行结果如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P19_14521.jpg?sign=1738890748-kl5y8oVC8FbswiwH0qdo7c4YMIsLABLD-0-8f3ed73a213b4b8dda313da765c174e5)
注意:如果列表切片的结果只有1个元素,则显示为标量值;如果切片的结果有多个元素,则显示为列表。
4)列表的修改
要修改列表中的元素,必须先用切片的方法获取要修改的元素,然后将修改的数据赋值给切片结果。可以修改单个元素,也可以修改连续的多个元素,示例代码如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P20_14558.jpg?sign=1738890748-fpNTW7fRDDIEdFa8XQbRAICrmetUKBg0-0-8c0f87511faf795b91bfd6d7661ce292)
运行结果如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P20_14559.jpg?sign=1738890748-W7d2SVGhPMWVGQxA2GBooTTeV4LZU5Wa-0-ca6775a4198952e441de9e073d1ff9e7)
注意:如果切片结果是标量值,则提供修改的数据就是标量值;如果切片结果是列表,则提供修改的数据就是列表。
4.元组
元组(tuple)可有序地存储一组数据元素。数据元素置于一对圆括号之间,元素之间用英文半角逗号分隔,如(1,2,3)。元组中的元素可以是任何数据类型。不能对元组中的元素做修改,只能做切片设置,下面列出了元组常见的切片方法,示例代码如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P20_14560.jpg?sign=1738890748-kkJa6xH6f7MpJIbofJso6s3gQZJ0QlU3-0-698c17b048afc9f3be46c873e01e7853)
运行结果如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P20_14561.jpg?sign=1738890748-j8VwEmROPhpXJzkk86dvuqUi846ilKwn-0-623215b0494bd11ea80c464d8ca8b132)
注意:如果元组中只有1个元素,则需要在这个元素的后面加上逗号。例如数字100,正确的表示方法为(100,),表示为(100)是错误的。
5.集合
集合(set)是由唯一元素组成的无序集。数据元素置于一对花括号之间,元素之间用英文半角逗号分隔,如{1,2,3}。集合里的每个元素必须保持唯一性,如果集合中的元素有重复,则在输出时会自动去做重复处理,示例代码如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P21_14613.jpg?sign=1738890748-h4pvN93gvWbwO1GYpfQcUECGeg1w14gn-0-3f925645684aac3f7353e8e6f3335a27)
运行结果如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P21_14614.jpg?sign=1738890748-RHAVq667vrzOuly0Jjt4ZaknjUkmHBgw-0-dda2d14cb12935779668ad23f169bfb3)
注意:集合是无序集的,即集合中元素的位置无法固定,所以不能像列表、元组一样做切片。
6.字典
字典(dict)是最重要的数据类型之一。每个元素由键值对组成,键与值之间用半角冒号分隔,键在字典中必须保持唯一性,值可以有重复。元素置于花括号中,元素之间用逗号分隔,如{'梨子':99,'苹果':95,'橙子':91}。
获取键对应的值,示例代码如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P21_14615.jpg?sign=1738890748-SaKEkqxZBKWn0erpNkc0bk83XkKTjqVW-0-2ee6b6277123b1020d6beecba94dc192)
运行结果如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P21_14616.jpg?sign=1738890748-96mxDRA3tcruaKU0om7JcnhejSVnXpFj-0-5722cd591efeb4ce989ae25d9e459f98)
修改键对应的值,示例代码如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P21_14617.jpg?sign=1738890748-yPajsvEaU2WBaEoLTbyf8WhydAkYBAfs-0-2e3c18c86b055456fb60bddc53458fe2)
运行结果如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P21_14618.jpg?sign=1738890748-k8VuSXu1I1CVkNoa1SBN9OneZFNvP7Cc-0-18c92288afddb1739a945a334d737959)
要获取字典的键和值的相关信息,有以下3种常用操作。
(1)获取字典中所有的键用keys()方法。
(2)获取字典中所有键对应的值用values()方法。
(3)获取字典中所有的键值对用items()方法。
示例代码如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P22_14655.jpg?sign=1738890748-UX0CGAnHHGfaCYtSTIkk3YMn1Slrlbsa-0-d37ef786a45c0faea22b86d4b447c9bf)
运行结果如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P22_14656.jpg?sign=1738890748-XXiuLDopf1PDsI4DsQsxLwAapjmD54Ul-0-41fdda32987959cbbfa58d1652c8aaed)