我当前将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”而不是标题和值?
答案 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以获得更多相关信息。