python - 使用条件在 DataFrame 中查找值
问题描述
我目前正在使用 loc 函数:
import numpy as np
import pandas as pd
df = pd.DataFrame({"A": [1,2,3], "B": [2,3,4]})
a=df.loc[(df.A==1), ['B']]
print(a)
这将返回“B 2”而不是“2”,因此我不能将该值附加到我的输出表中:
output_table['column'][row]=a
我怎样才能得到“2”而不是标题和值?
解决方案
这里有几个因素。
首先,
df.loc[(df.A==1), 'B']
不同于
df.loc[(df.A==1), ['B']]
前者给你一个pd.Series
,后者产生一个pd.DataFrame
。您可能想要第一个,它应该适用于您发布的代码。如果你真的只想要2
并且知道 该系列只有一个项目,你可以明确地做
df.loc[(df.A==1), 'B'].item()
获取返回值。
其次,如果output_table
是您可能想要的数据框
output_table.low[row, 'column'] = a
而不是output_table['column'][row]
. 后一个语句将修改数据框的副本,而前一个语句将修改数据框。我建议查看.loc
文档页面以获取更多信息。
推荐阅读
- javascript - Protractor/Jasmine 可以等待 20 分钟进行测试执行吗?
- python - 使用 Selenium 从 h3 类名中获取标题列表
- amazon-web-services - 如何使用 AWS 应用程序负载均衡器将 https 重定向到带有 www 的 https?
- python - 来自集合 Python 的随机数
- eclipse - Eclipse 中缺少 c/c++ 单元测试支持?
- heroku - “这个应用程序还没有进程类型”尽管一切都已部署
- ihp - 数据构造函数不在范围内:无法识别的编译指示
- python - Imblearn SMOTE:如何为多类不平衡数据集设置 sample_strategy 参数?
- python - Pythinic spark 作业正在尝试从某个地址获取某些内容并失败
- jmeter - Jmeter灵活文件写入头问题