带for循环的数据帧

时间:2019-06-19 06:25:41

标签: python pandas

我是Python的新手,遇到了一段有趣的代码,我试图更详细地理解。我的数据框看起来像这样:

coins

有人非常高兴地在此网站上发布了以下代码:

qty

我了解pd.DataFrame内部的代码在做什么。但是,在上述情况下,我找不到任何有关for循环工作原理的文档。尽管它的工作方式类似于列表理解,但这看起来并不像列表理解。

有人可以指出一些文档/教程来解释如何使用上述语法吗?

2 个答案:

答案 0 :(得分:2)

这是字典理解。 字典允许您将一个值映射到另一个值,这就是您在代码中所做的事情。 官方python documentation covers this的例子很简洁

{x: x**2 for x in (2, 4, 6)}

返回一个字典:{2: 4, 4: 16, 6: 36},其中x映射到x**2

基本上,您在这里所做的是

{key: value that you want for the key, value in dict.items()}

答案 1 :(得分:1)

实际上不是列表理解,而是使用了两个概念,

  1. [Dictionary comprehension]
  2. [pandas.Series.str.contains]

以下代码,

{col: data[col].str.contains('#') for col in cols}

使用变量col遍历列表df.columns并将其添加到结果列表中。这种语法是字典理解。

词典理解示例:

myDict = {x: x**2 for x in [1,2,3,4,5]} 
print (myDict) 

输出

{1: 1, 2: 4, 3: 9, 4: 16, 5: 25}