使用条件在DataFrame中查找值

时间:2018-07-30 18:59:25

标签: python pandas spyder

我当前将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”而不是标题和值?

1 个答案:

答案 0 :(得分:1)

这里有几个因素。

首先

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]。后一条语句将修改您的数据框的副本,而前一条语句将修改 the 数据框。我建议您检查.loc docs page以获得更多相关信息。