熊猫阅读颜色

时间:2020-11-12 20:11:37

标签: python pandas dataframe

我正在编写一个程序,将读取包含名称和颜色(美国人的颜色)的excel文档,它需要阅读该文档并检查名称是否与您输入的名称相同,并检查C列的颜色是绿色,黄色或红色,并在分数上加一个。

我知道这是有可能的,但是我对熊猫知之甚少,需要一些帮助,并且在视频和其他网站上也找不到很多帮助。希望你能帮助我。

谢谢。

1 个答案:

答案 0 :(得分:0)

假设名称输入需要从命令行输入,我将执行以下操作将名称输入程序:

name = sys.argv[1]

这使用sys程序包读取命令行参数。 Sys.argv是命令行参数的列表。默认情况下,第一个命令行arg是您正在运行的可执行文件的名称,因此您的第一个参数是argv列表中的第二个元素。您也可以使用出色的argparse package来做到这一点。

然后将其读入熊猫:

pd.read_csv(<path to csv here>)

我假设您有一个名为“名称”的列和一个名为“颜色”的列,其内容如下:

要获取与名称匹配的数据框的行:

df = df.loc[df["name"] == name]

数据框的.loc方法用于根据值或标签选择行。在这里,df [“ name”] == name检查名称是否与输入的名称相同。

然后获取与“橙色”匹配的颜色数量(是的,我是美国人):

len(df.loc[df['colour'] == 'orange'])

这会从您的数据框中选择与颜色匹配的值(该数据框已经过过滤,仅包含我们感兴趣的名称)。然后,一旦只有这些值,就可以使用数据框的长度作为该颜色的行数。

对于多种颜色,您可以将上面获取代码的一种代码包装在用于循环访问颜色列表的for循环中。

如果您想一次统计每个名称和颜色,我建议您使用以下方式建立一个熊猫小组:

df.groupby(["name", "colour"]).agg("count")

这首先将数据框按名称分组,然后按颜色分组。然后,它会为每个不同的名称和颜色组合计数。