【发布时间】:2014-02-19 00:53:22
【问题描述】:
如果我有一个 pandas DataFrame 对象,我如何简单地访问一个单元格?在R中,假设我的data.frame被称为df,我可以通过
访问第3行和第4列df[3,4]
python中的等价物是什么?
【问题讨论】:
-
这个问题的正确方法(用于选择特定单元格)是使用
df.at[3, 4],如second answer所示。
如果我有一个 pandas DataFrame 对象,我如何简单地访问一个单元格?在R中,假设我的data.frame被称为df,我可以通过
访问第3行和第4列df[3,4]
python中的等价物是什么?
【问题讨论】:
df.at[3, 4],如second answer所示。
【讨论】:
.ix() 比.iloc() 更通用
.ix() 是 .iloc() 的超集,因此就本问题而言,它们是等价的。不知道有多大的速度差异。
df = pd.DataFrame([[1, 2], [3, 4]], [1, 0], [1, 0]) 试试 df.loc[0, 0], df.iloc[0, 0], df.ix[0, 0],ix 对于这个整数索引的 DataFrame 是不明确的——这就是 loc 和 iloc 存在的原因。当您有一个非唯一索引(其中 loc/ix 类型不稳定)时,它们的行为也会有所不同。
iloc 也可以吗?
如果要根据列和行标签访问单元格,请使用at:
df.at["Year","Temperature"]
这将返回与“年”行和“温度”列相交的单元格。
【讨论】:
df.at[ ..., ...] 是我要找的东西。