![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=1739342535-RqG9IpsDkjjEr1f7fSRL8yo8SkNugfxE-0-feb90e4c42e2cf29a2db28e8ee9f9fd9)
运行结果如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P17_14413.jpg?sign=1739342535-ci9o3IeDLA4hLyT77S3HGHeDSiZtpLNc-0-6e891c45d21009f9c68362f5fb5dc56c)
2.字符串
字符串(string)的组成内容可以是数字、字母、汉字和符号等任何可以在计算机上表示出来的一串字符。字符串放置在一对单引号(')或双引号(")中,示例代码如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P17_14414.jpg?sign=1739342535-ueZpfAd0yNk2SzhkFORErGOsI4JoVYWc-0-b1a616ebf12b97c25eefcdfb24525f75)
运行结果如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P18_14462.jpg?sign=1739342535-cNcklvRvfYnZFB1lPOnJg1g1ZVfQiQZf-0-4d000a0bb361d51b9b5a6501093fe89f)
注意:在表示字符串时,最好统一使用一种字符串表示方式,本书均采用单引号的方式来引用字符串。如果字符串中有特殊字符,但希望具有普通意义,而不具有特殊意义,就需要在字符串左侧加r。例如'\n'将被视为换行符,而r'\n'将被视为\后跟的字符n。
要获取字符串中的某部分字符串,可以通过切片方式来截取。在对字符串切片时默认的起始位置为0。下面罗列了几种基本的切片方式,用户可以根据这些切片原则衍生出更多的切片方法,示例代码如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P18_14463.jpg?sign=1739342535-ctpfFuM6MOIcAGxXnWIuzuoz16CJvuNy-0-cb0ef2e24800803c6eb1a71ab5b46c1b)
运行结果如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P18_14464.jpg?sign=1739342535-ofdtuduiOnKukP998b5BT5Af1Gwr1XA9-0-cf6ed672299c7ded92c4d4060b399a5f)
3.列表
列表(list)可有序地存储一组数据元素。数据元素置于一对中括号之间,元素之间用英文半角逗号分隔,如[1,2,3]。列表中的元素可以是任何数据类型,并且可以对列表进行修改,下面讲解常用操作。
1)列表的添加
使用append()函数向列表末尾添加单个元素,也可以使用extend()函数向列表末尾添加多个元素,示例代码如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P18_14465.jpg?sign=1739342535-guUxcoY2stu4LI7NUNZpE2Bw09XuDP8e-0-f864f79415e52195c88c276f924b24a3)
运行结果如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P19_14517.jpg?sign=1739342535-uo0JDrDsn2IMzWfXVGtVMOQSwe9VP1Yc-0-f180974c9e4cf0adf5ca7b1f122eded6)
2)列表的删除
使用pop()函数删除列表中指定下标对应的元素,也可以使用remove()函数删除列表中指定名称的元素,如果列表中有多个相同名称的元素,则只删除第1个,示例代码如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P19_14518.jpg?sign=1739342535-iGu32NqvfIxOSdDKW3jf1rc5k7BsXwU9-0-c6b80204314d279607b5fe433c9418e7)
运行结果如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P19_14519.jpg?sign=1739342535-8m5JpHOVSpd9BymyMOY9DnxlvNkDdogD-0-03088405e1dd628f823a1a143263ccbe)
3)列表的切片
列表的切片与字符串的切片方式一样,通过指定列表的下标完成切片操作,下面罗列了常见的列表切片方式,示例代码如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P19_14520.jpg?sign=1739342535-ElACgzKlUTFHXXRWoVhW0r47Oi0WfvEt-0-16e03f39b3c8bf18104f5dbd65b8ad6a)
运行结果如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P19_14521.jpg?sign=1739342535-Gi45xwqJ6pAjQz2kxYJ4RV1Sq8BuzBI4-0-5e9fbacc7ddcc6cbd4a3cdbcc619004d)
注意:如果列表切片的结果只有1个元素,则显示为标量值;如果切片的结果有多个元素,则显示为列表。
4)列表的修改
要修改列表中的元素,必须先用切片的方法获取要修改的元素,然后将修改的数据赋值给切片结果。可以修改单个元素,也可以修改连续的多个元素,示例代码如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P20_14558.jpg?sign=1739342535-4aaMTmbDaMxPayI5wNJemU6yUfJuESXz-0-2282209661d2fd20cbd67d9116937f15)
运行结果如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P20_14559.jpg?sign=1739342535-zXfPMldbxWeOpnJEz6GYp76xuFw9x8Cz-0-de9d54d68b08cda9beef798b7dfe2d0c)
注意:如果切片结果是标量值,则提供修改的数据就是标量值;如果切片结果是列表,则提供修改的数据就是列表。
4.元组
元组(tuple)可有序地存储一组数据元素。数据元素置于一对圆括号之间,元素之间用英文半角逗号分隔,如(1,2,3)。元组中的元素可以是任何数据类型。不能对元组中的元素做修改,只能做切片设置,下面列出了元组常见的切片方法,示例代码如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P20_14560.jpg?sign=1739342535-AxWBseDAXbXBZyiRC9KuT1jVP9gSGpyU-0-b5a071724e0afe69bd47100a53572f70)
运行结果如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P20_14561.jpg?sign=1739342535-dkHHTLS6npiGf9e7NrQwle5cbIawHmf3-0-b289dad8e36d052b85a1c0d5f4bc3083)
注意:如果元组中只有1个元素,则需要在这个元素的后面加上逗号。例如数字100,正确的表示方法为(100,),表示为(100)是错误的。
5.集合
集合(set)是由唯一元素组成的无序集。数据元素置于一对花括号之间,元素之间用英文半角逗号分隔,如{1,2,3}。集合里的每个元素必须保持唯一性,如果集合中的元素有重复,则在输出时会自动去做重复处理,示例代码如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P21_14613.jpg?sign=1739342535-i5awZEWoqKURZCxOupiofP2FeM4RGGau-0-a42b19ebf758c85454ccc1ba47b85940)
运行结果如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P21_14614.jpg?sign=1739342535-lmH1xJwXrVBEyMQfGmEgorB5K2qFQEh2-0-85aff634a49f6728ef14e991df500419)
注意:集合是无序集的,即集合中元素的位置无法固定,所以不能像列表、元组一样做切片。
6.字典
字典(dict)是最重要的数据类型之一。每个元素由键值对组成,键与值之间用半角冒号分隔,键在字典中必须保持唯一性,值可以有重复。元素置于花括号中,元素之间用逗号分隔,如{'梨子':99,'苹果':95,'橙子':91}。
获取键对应的值,示例代码如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P21_14615.jpg?sign=1739342535-JUZzU1le6rA1zaoasi7yL5yhsSfb46N6-0-a7c20ae9bc376137f9af853f003a5173)
运行结果如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P21_14616.jpg?sign=1739342535-hxURGHaRHAZbebPJRugrd23ly4LnvkDC-0-52e060c55a7e4b8d21b707cd65f28b87)
修改键对应的值,示例代码如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P21_14617.jpg?sign=1739342535-C1SQa8XQXOmH7gI1B2GNu9IQbwzq1DWy-0-eaac792f40de688b2900413b4b3e781a)
运行结果如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P21_14618.jpg?sign=1739342535-RPB3IPP807idWvJgdYbvWgp6eyClpa0c-0-676cfcd77d9dee4d1222cef37e3f5953)
要获取字典的键和值的相关信息,有以下3种常用操作。
(1)获取字典中所有的键用keys()方法。
(2)获取字典中所有键对应的值用values()方法。
(3)获取字典中所有的键值对用items()方法。
示例代码如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P22_14655.jpg?sign=1739342535-vgeUHmj6wed6y6Kv60rRQi1pqCMExft0-0-4c454d88dc44be47c78ce34363cf6cd5)
运行结果如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P22_14656.jpg?sign=1739342535-oelwbFJ7dYyw7tVyYc4gu47iwYbezCVE-0-3a16a333955d28364437717196756ee6)