首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >df[df['col‘]和df['col’]之间的差异?

df[df['col‘]和df['col’]之间的差异?
EN

Stack Overflow用户
提问于 2022-06-10 15:22:11
回答 2查看 244关注 0票数 0

我在编码方面是新手,我想真正理解它,我必须真正掌握这些概念。

生活质量编辑:

为什么我们要做df[df‘’col‘] == x?而不是df‘’col‘== x?在搜索的时候?我理解在第二个表达式中,我将看到等于X的列名,但是我很想知道添加一个list (df[])对代码有什么作用

我很想知道这两者之间的区别,以及我在列表中嵌套列的时候实际上在做什么。

任何帮助都很感谢,非常感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-06-10 16:08:04

通常,df[index]根据索引从数据块中选择切片。

熊猫支持几种不同的索引方法。你问题中的表达将其中的两个联系在一起。首先,内部索引df['col_a']选择列col_a中的所有值。这些值是在一个布尔表达式中计算的,该表达式返回一个用True“蒙面”的系列,其中列中的值满足条件,在其他地方为False。然后,外部部分使用布尔索引来选择满足此条件的整个数据帧中的所有行。

示例:

代码语言:javascript
复制
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

选择一列:

代码语言:javascript
复制
[In] df['column2']
[Out] 
0    x
1    x
2    x
3    y
4    y
Name: column2, dtype: object

创建一个掩码:

代码语言:javascript
复制
[In] df['column2'] == 'x'
[Out]
0     True
1     True
2     True
3    False
4    False
Name: column2, dtype: bool

在列x中选择值为column2的所有行

代码语言:javascript
复制
[In] df[df['column2'] == 'x']
[Out]
  column1 column2
0       a       x
1       b       x
2       c       x
票数 0
EN

Stack Overflow用户

发布于 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'],就很难编写和保持在一起。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72576630

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档