python - 在 Pandas 中,df ['column' ] 和 df.column 有什么区别?

标签 python pandas

<分区>

我正在学习 Pandas for Data Analysis 并学到了很多东西。但是,一件事不断出现。书中通常将数据框的列称为 df['column'],但是,有时书中没有解释就使用 df.column

我不明白两者之间的区别。任何帮助将不胜感激。

下面是演示我在说什么的代码:

In [5]:

import pandas as pd

data = {'column1': ['a', 'a', 'a', 'b', 'c'], 
        'column2': [1, 4, 2, 5, 3]}
df = pd.DataFrame(data, columns = ['column1', 'column2'])
df

Out[5]:
column1 column2
0    a   1
1    a   4
2    a   2
3    b   5
4    c   3
5 rows × 2 columns

df.column:

In [8]:

df.column1
Out[8]:
0    a
1    a
2    a
3    b
4    c
Name: column1, dtype: object

df['列']:

In [9]:

df['column1']
Out[9]:
0    a
1    a
2    a
3    b
4    c
Name: column1, dtype: object

最佳答案

对于设置值,您需要使用df['column'] = series

然而,一旦完成此操作,您可以在将来使用 df.column 引用该列,假设它是一个有效的 python 名称。 (所以 df.column 可以工作,但是 df.6column 仍然需要使用 df['6column'] 访问)

我认为这里的细微差别是,当您使用 df['column'] = ser 设置某些内容时,pandas 会继续并将其添加到列/做一些其他事情(我相信覆盖 __setitem__ 中的功能。如果您执行 df.column = ser,这就像向任何使用 __setattr__ 的现有对象添加一个新字段,而 pandas 似乎并没有覆盖这种行为。

关于python - 在 Pandas 中,df ['column' ] 和 df.column 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23546555/

相关文章:

字符串中的 Python 通配符搜索

python - 匹配多个包含括号内文本的完整 HTML 段落

python - 如何在一行中计算数据框中的并发事件?

python - matplotlib动画可以保存成什么格式?

python - 在 Google Colab Notebook 中启动 Dash 应用

python - Django 迁移 int() 的无效文字

python - 两列第一个位置的 NaN(按每个唯一值)

python - 打印 Pandas 数据框时抑制描述性输出

python - Pandas ,申请后保持分组

python - 反向 z 评分 Pandas 数据框