我在编码方面是新手,我想真正理解它,我必须真正掌握这些概念。
生活质量编辑:
为什么我们要做df[df‘’col‘] == x?而不是df‘’col‘== x?在搜索的时候?我理解在第二个表达式中,我将看到等于X的列名,但是我很想知道添加一个list (df[])对代码有什么作用
我很想知道这两者之间的区别,以及我在列表中嵌套列的时候实际上在做什么。
任何帮助都很感谢,非常感谢!
发布于 2022-06-10 16:08:04
通常,df[index]根据索引从数据块中选择切片。
熊猫支持几种不同的索引方法。你问题中的表达将其中的两个联系在一起。首先,内部索引df['col_a']选择列col_a中的所有值。这些值是在一个布尔表达式中计算的,该表达式返回一个用True“蒙面”的系列,其中列中的值满足条件,在其他地方为False。然后,外部部分使用布尔索引来选择满足此条件的整个数据帧中的所有行。
示例:
df = pd.DataFrame({'column1': [0, 1, 2, 3, 4], 'column2': ['x', 'x', 'x', 'y', 'y']})
[In] df
[Out]
column1 column2
0 a x
1 b x
2 c x
3 d y
4 e y选择一列:
[In] df['column2']
[Out]
0 x
1 x
2 x
3 y
4 y
Name: column2, dtype: object创建一个掩码:
[In] df['column2'] == 'x'
[Out]
0 True
1 True
2 True
3 False
4 False
Name: column2, dtype: bool在列x中选择值为column2的所有行
[In] df[df['column2'] == 'x']
[Out]
column1 column2
0 a x
1 b x
2 c x发布于 2022-06-10 15:28:37
所以我们使用df[df['col a']== x]而不仅仅是df['col a'] == x,因为为了优化数据帧本身,您正在用df['col a'] == x告诉数据帧,如果满足条件,您想要一个真假的bool (您可以在df上尝试这一点,当您不把它放在df[]中时,它只会将df['col a'] == x作为一个真假列表列出)。所以熊猫首先会说“问什么”?然后它会说:“您在这里要求的X是基于您所要求的内容的一系列真假的”,最后“您要求的是该系列的所有唯一的真值--这里的数据--唯一的反映为真”
这能帮我们澄清它在做什么吗?从根本上说,就是尽量让熊猫发挥出最佳效果。此外,当您开始学习越来越多的东西时,您可以添加多个参数df[(df['col a'] == x) & (df['col b'] == y)],如果您只为您的说教做了df['col a'],就很难编写和保持在一起。
https://stackoverflow.com/questions/72576630
复制相似问题