Pandas iloc和loc的索引错误

时间:2017-11-08 14:12:44

标签: python pandas

我正在尝试从Pandas Matrix中选择特定行并获取列值为1的列标题标题。例如 对于行GAO(以CSV格式),它有4个标题下的“新闻稿”,“语句”,“政策简报”,“白皮书”(最后2个标题对您不可见)。所以我想将这些标题标题保存在List变量下。

enter image description here。这是我正在使用的代码

jq '.results[].geometry.location' < input.json

这是CSV file

注意:我使用的是python3.6。

1 个答案:

答案 0 :(得分:2)

您没有告诉pandas第一列是索引,请尝试

matrixData = pd.read_csv("contentParameter.csv", index_col=[0])

matrixData = pd.read_csv("contentParameter.csv", index_col='Source\Content')

默认情况下会自动为您生成一个。

loc使用基于label的索引,iloc使用基于positional的索引。

由于标签'CRS'不存在,所以matrixData.loc["CRS"]提出了KeyError,如果你matrixData.iloc[0]那么这将返回第一行

要回答上一个问题,您可以生成符合条件的值的布尔掩码,以屏蔽列。假设'Source/Content'现在是索引:

df.loc['GAO'] == 1.0

将生成一个布尔掩码,我们可以使用它来掩盖列:

df.columns[df.loc['GAO'] == 1.0]