PythonPanda软件包的使用教程
如何进入Panda
由于Pandas的流行,它具有自己的常规缩写,因此,只要您将Pandas导入python,请使用以下命名法:
importpandasaspd
Pandas包的主要用途是DataFrame
pandasAPI将pandas数据帧定义为:
二维,大小可变,可能异构的表格数据。数据结构还包含标记的轴(行和列)。算术运算在行和列标签上均对齐。可以看作是Series对象的类似dict的容器。大熊猫的主要数据结构。
DataFrames非常有用,因为它们提供了一种简单的方法来打印表可视化效果,然后按照您希望的方式对其进行操作。索引可以很容易地引用行,索引是数据帧最左侧的数字。索引将是从零开始的相应行的编号,除非您为每行指定名称。还可以通过列名称(例如“跟踪名称”)或它们在数据框中的位置来轻松引用这些列。
有几种创建熊猫数据框的方法:
从.csv文件(或其他文件类型,例如Excel,SQL数据库)导入数据
从清单中
从字典中
从一个numpy数组
很多很多!
通常,您将主要将.csv文件或某种类型的数据源(即SQL数据库)中的数据放入pandas数据框中。您不会从头开始,因为要花很长时间才能完成,具体取决于您拥有的数据量。但是,如果需要的话,下面是一个来自python的快速简单的示例:
importpandasaspd
dict1={Exercises:[Running,Walking,Cycling],
Mileage:[,,]}
df=pd.DataFrame(dict1)
df
由上面的代码构成的基本数据框
Dictionarykey(“练习”和“里程”)成为相应的列标题。在此示例中,作为列表的dictionary中的值成为数据框中的各个数据点。自“运行”列表以来,列表的顺序是重要的,因为“运行”列表中它排在第一行,而“运行”列表中的则排在第二列的第一行,因为它在“里程”列表中排在第一位。另外,您还会注意到,由于我没有为数据框的索引指定标签,因此它自动被标记为0、1、2。
但是,就像我之前说过的,创建熊猫数据框的最可能方法是来自要导入以分析数据的csv或其他类型的文件。只需完成以下操作即可轻松完成此操作:
df=pd.read_csv(file_location.../file_name.csv)
pd.read_csv()是一种非常强大且用途广泛的方法,将非常有用,具体取决于您要导入数据的方式。如果您的csv文件已经附带了标头或索引,则可以在导入时指定它,从而使您的工作变得更加轻松。为了了解pd.read_csv()的全部功能,建议您在此处查看pandasAPI。
现在,您已将数据导入到python编辑器中,并准备进行分析。但是,在我们深入回答您的分析性问题之前,您必须熟悉您的数据并查看其外观。作为分析此数据的人,您必须对数据集感到满意。为了了解我的数据,我喜欢使用四种方法,并且哪种都超级简单。
.head().tail()info().describe()..sample()raw_song.head()
上面的行是页面顶部图片中的行。它将显示数据框的前5行和每一列,以使您可以轻松总结数据的外观。您也可以在方法()内指定一定数量的行,以根据需要显示更多行。
.tail()isthesamejustdisplayingthelast5lines.
raw_song.tail()
从这两种快速方法中,我有一个大致的概念或列名,以及仅从数据集中的一小部分数据得出的数据。这些方法也非常有用,特别是对于像Spotify数据集这样处理超过万行的数据集,您可以轻松显示该数据集并快速了解,并且无需花费很长时间即可显示数据。
.info()isalsousefulinthatitshowsmeasuccinctlistofallofthecolumns,theirdatatypes,andwhetheryouhaveanynulldatapointsornot.
raw_song.info(verbose=True,null_counts=True)
如果您具有完全为整数或浮点的列(即“位置”,“流”),那么.describe()可以是一种有用的方法,可帮助您了解有关数据集的更多信息,因为它会显示有关这些列的许多描述性统计信息。
raw_song.describe()
.describe()方法处理Spotify数据集中的歌曲数据。请注意,由于只显示了“位置”和“流”列,因为它们是仅有的两个整数列,其他列是字符串,并且没有描述性统计信息。
最后,.sample()将允许您随机采样数据帧,并查看您进行的任何操作是否错误地更改了数据集中的某些内容,并且在首次浏览数据集时仅了解数据集包含的内容也可能非常有用。完全没有在以前的方法中显示出来。
raw_song.sample(10)
在探索和准备数据集进行分析时,我会始终使用每种方法。每当我更改列中的数据,更改列名或添加/删除行/列时,我都会通过快速运行至少前5种方法中的任何一种来确保它们全部更改了所需的方式。
选择行或列
现在您知道了如何整体查看数据集,但是您实际上只想查看几列或几行,然后将其余部分排除在外。
.loc[]和.iloc[]
这两种方法将完全以不同的方式完成此操作,具体取决于您引用特定行或列的方式。
如果知道行或列的标签,请使用.loc[]。
如果知道行或列的索引,请使用.iloc[]。
如果两者都知道,只需选择自己喜欢的东西,掷硬币或使用您知道不会改变的硬币即可。例如,如果将行或列添加到数据框中,则索引将在这些行/列上更改,并可能导致您以后引用错误的行/列。
raw_song.loc[:,TrackName]
第一个括号后面的冒号指定了我要引用的行,并且由于我希望“TrackName”列中的所有行,因此我使用“:”。
.loc[]
只有在这次需要指定“TrackName”列的索引时,我才会使用.iloc[]接收相同的输出:
因此,回到Spotify数据集。您可以只使用.loc[]或.iloc[]查看“TrackName”列。由于我知道列的标签,因此使用.loc[]时,我将使用以下内容:
raw_song.iloc[:,1]
.iloc[]
.loc[]和.iloc[]对于行是相同的,除了在这种情况下,因为行的标签和索引都相同,所以它们看起来会完全相同。
SlicingandDicing
获取DataFrame的一部分的另一种简单方法是仅使用[]并在方括号内指定列名称。
raw_song[[Artist,Streams]].head()
raw_song[Streams]
从数据框添加行,列
利用从.loc[]中已经知道的信息,我们可以使用它向数据框添加行或列。您也可以使用其他两种方式使用.insert()来添加列,也可以像添加数据框的一部分并在方括号[]中指定列的名称那样来添加列。如果要添加多个行和列,则可以创建一个单独的数据框,并将新列或行的此新数据框与原始数据框连接起来,以添加该列或行。为此,您可以使用pd.merge(),concat()或join();。
添加一行:
如果决定使用.loc[]将行添加到数据框,则只能将其添加到数据框的底部。在数据框中指定任何其他索引以擦除该行中当前的数据,并将其替换为您要插入的数据。在此示例中,我只是将新索引命名为“last”,它显示在数据框的底部。请注意,它不必是一个特定的名称,只要它与其他任何索引都不相同即可。
raw_song.loc[last]=[0,hello,bluemen,1,