【问题标题】:pandas - how to access cell in pandas, equivalent of df[3,4] in Rpandas - 如何访问 pandas 中的单元格,相当于 R 中的 df[3,4]
【发布时间】:2014-02-19 00:53:22
【问题描述】:

如果我有一个 pandas DataFrame 对象,我如何简单地访问一个单元格?在R中,假设我的data.frame被称为df,我可以通过

访问第3行和第4列
df[3,4]

python中的等价物是什么?

【问题讨论】:

  • 这个问题的正确方法(用于选择特定单元格)是使用df.at[3, 4],如second answer所示。

标签: indexing pandas dataframe


【解决方案1】:

你可以使用iloc(通过位置获取):

df.iloc[3,4]

我推荐阅读indexing section of the docs

【讨论】:

  • .ix().iloc() 更通用
  • @smci 他们做不同的事情。有时你想通过标签(loc),有时通过位置(iloc),有时两者(ix)。有时 ix 是模棱两可的。 iloc 更快。
  • Andy,.ix().iloc() 的超集,因此就本问题而言,它们是等价的。不知道有多大的速度差异。
  • @smci 不确定我会这么说...例如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 类型不稳定)时,它们的行为也会有所不同。
  • @AndyHayden 在处理浮点数的情况下,iloc 也可以吗?
【解决方案2】:

如果要根据列和行标签访问单元格,请使用at

df.at["Year","Temperature"]

这将返回与“年”行和“温度”列相交的单元格。

【讨论】:

  • 其实df.at[ ..., ...] 是我要找的东西。
猜你喜欢
  • 2019-09-08
  • 1970-01-01
  • 1970-01-01
  • 2022-01-17
  • 1970-01-01
  • 1970-01-01
  • 2014-03-17
  • 2017-04-16
  • 2021-05-30
相关资源
最近更新 更多