Python 具有for循环的数据帧
我对Python比较陌生,遇到了一段有趣的代码,我正试图更详细地理解它。我的数据框如下所示:Python 具有for循环的数据帧,python,pandas,Python,Pandas,我对Python比较陌生,遇到了一段有趣的代码,我正试图更详细地理解它。我的数据框如下所示: import pandas as pd d = {'business': ['FX','a','CR'], 'A/L': ['A','A','L']} data = pd.DataFrame(data=d) data 有人非常友好地在此网站上发布了以下代码: cols=data.columns pd.DataFrame({col: data[col].str.contains('#') for col
import pandas as pd
d = {'business': ['FX','a','CR'], 'A/L': ['A','A','L']}
data = pd.DataFrame(data=d)
data
有人非常友好地在此网站上发布了以下代码:
cols=data.columns
pd.DataFrame({col: data[col].str.contains('#') for col in cols})
我理解pd.DataFrame中的代码在做什么。但是,我找不到任何关于for循环在上述上下文中如何工作的文档。这看起来不像列表理解,尽管它的工作原理类似于列表理解
有人能给我指一些说明如何使用上述语法的文档/教程吗?这实际上不是列表理解,而是使用了两个概念 鉴于以下代码
{col: data[col].str.contains('#') for col in cols}
使用变量col迭代list 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}
这是一个听写理解。
字典允许您将一个值映射到另一个值,这就是您在代码中所做的。
这位官员举了一个简洁的例子
{x:x**2代表(2,4,6)中的x}
它返回一个dict:{2:4,4:16,6:36}
,其中x
映射到x**2
基本上你在这里做的是
{key:key所需的值,dict.items()中的值}
这是一个dict理解:使用cols=data.columns
保存列标题:“business”和“A/L”,然后在该列上循环并查看是否有“#”在其中,使用print(pd.DataFrame({col:data[col].str.contains('#')for cols})查看发生了什么