【.com快译】简介无论你是从数据工程师/数据分析师转型,还是想成为更高效的数据科学家,查询数据框都是返回你需要的特定行的有用方法。值得一提的是,pandas有一个特定的查询函数,叫做query。但是,我将讨论您可以模拟查询、过滤和合并数据的其他方法。我们将涵盖您提出的有关数据的常见场景或问题,我们将使用Python而不是SQL来完成。在下文中,我概述了一些使用Python编程语言针对Pandas数据框查询行的简单方法。多个条件图1.示例数据作为数据科学家或数据分析师,我们希望返回特定的数据行。一种这样的情况是当您想要在同一行代码上应用多个条件时。为了演示示例,我创建了几个虚假的名字和姓氏样本数据,以及他们各自的性别和生日。此数据显示在上面的屏幕截图中。示例多个条件基本上会回答一个特定的问题,就像您使用SQL一样。问题是我们的数据中有多少百分比是男性或2010年到2021年之间出生的人。下面是解决这个问题的代码(有几种方法可以回答这个问题,但这是我的具体方法):print("PercentofdatawhoareMalesORwerebornbetween2010and2021:",100*round(df[(df['性别']=='男')|(df['生日']>='2010–01–01')&(df['生日']<='2021–01–01')]['Gender'].count()/df.shape[0],4),"%")为了更好地可视化这段代码,我还提供了上面相同代码的屏幕截图连同输出/结果。您还可以应用这些条件来返回实际行,而不是取总行的一小部分或百分比。图2.条件代码以下是我们执行的命令的顺序:返回男性性别的行包括OR函数|返回出生日期>2010和2021的行代码与您在SQL中看到的类似。就个人而言,我发现pandas更容易,因为它减少了代码,同时仍然可以在一个简单的地方直观地看到所有代码,而无需上下滚动(但这种格式只是我最喜欢的)。Mergebymultiplespecificcolumns图3.合并dataframe结果我们可能已经在其他教程中看到了如何将dataframe合并在一起,所以我想添加一个我还没有真正见过的独特方法,即通过Mergemultiplespecificcolumns。在这种情况下,我们想要连接两个数据帧,并在它们之间共享两个字段。不难看出:如果有更多的列,这种方法会更有用。我们有第一个数据框df,然后我们通过第二个数据框df2合并列。这是实现我们期望结果的代码:merged_df=df.merge(df2,how='inner',left_on=cols,right_on=cols)为了更好地可视化此合并和代码,我提供了下面的屏幕截图。您可以在下面看到第二个数据框的样子,包括名字和姓氏,就像它们在第一个数据框中一样,但有一个新列:数字。然后,我们有要合并的特定列,返回性别、出生日期和一个新的数字列。列实际上是列的列表,名为cols。图4.合并数据框如您所见,这种合并数据框的方式是获得与SQL查询相同结果的简便方法。结论在本教程中,我们看到了两个常见的问题或查询,您将在SQL中执行这些问题或查询,但最终使用Python中的Pandas数据帧执行它们。总而言之,这是我们研究过的两个场景:根据多个条件返回总数据集百分比的行由多个特定列组合以返回带有新列的最终数据框。原标题:HowtoQueryYourPandasDataframe,作者:MatthewPrzybyla
