python - 用于获取标量值的 df.at 和 df.loc 给出不同的结果

标签 python pandas

我正在关注“10 分钟了解 Pandas ”教程,网址为 http://pandas.pydata.org/pandas-docs/stable/10min.html

dates = pd.date_range('20130101', periods=6)
df = pd.DataFrame(np.random.randn(6,4), index=dates, columns=list('ABCD'))

df.loc['20130101','A']

在我的例子中输出-0.25092116222457655

同时

df.at['20130101','A']

同时导致TypeErrorKeyError

pd.__version__

'0.20.3'

最佳答案

pd.DataFrame.at 要求您以正确的对象类型指定标签。

pd.DataFrame.loc 包含字符串到日期时间 转换的附加逻辑。

例如,这将起作用:

df.at[pd.to_datetime('20130101'),'A']

请注意,这是 .at.iat 性能优于 .loc.iloc 的原因之一对于访问标量:输入有更大的限制。

关于python - 用于获取标量值的 df.at 和 df.loc 给出不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50173442/

相关文章:

python - “signup”对象没有属性 'get'

python - 如何在 Windows 上安装 pipx?

python - 几个模型的聚合 - Django

python - 将 pandas DataFrame 列附加到 CSV

python - 在 python 中表示二叉搜索树

python - 为什么使用one_hot编码时需要pad_sequences?

python - 根据没有名称值的列过滤数据框

python - 根据记录的大小/数量删除 Pandas 记录的优雅方式

python - 我应该将 Pandas DataFrame 列名定义为字符串变量吗?

python - 基于多种条件的 Pandas 风格?