在数据框中查找字符串的索引和列号
Finding index and column number of strings in dataframe
我有一个数据框(多列),我想在数据框中找到某些字符串的确切(数字)位置。对于位置,我的意思是我想知道它的行号和列号(不是列名)。
让我们用下面的数据帧做一个例子df
:
hi apple fine
right yes okay
maybe apple no
我想找到所有苹果的位置,所以我想知道第 0 行第 1 列有一个 apple
,第 2 行第 1 列有一个 apple
。
我怎样才能找到这些号码?
我开始寻找所有满足条件的地方,即该元素确实包含我正在寻找的字符串,其中:
df[df=='apple']
这很好,但我如何获得所有 True
的位置?
我试过这个 df.index[df=='apple'].tolist()
但它给出了一个错误,因为有多个列。我知道我可以通过 运行 遍历所有列的 for 循环来解决这个问题,但想知道是否有更直接的方法。 str.find()
也没有给我列号。我也研究了 get_loc
但这似乎只适用于索引。
您可以使用 np.argwhere
:
print(np.argwhere(df.values == "apple"))
打印:
[[0 1]
[2 1]]
作为列表:
print(np.argwhere(df.values == "apple").tolist())
打印:
[[0, 1], [2, 1]]
我有一个数据框(多列),我想在数据框中找到某些字符串的确切(数字)位置。对于位置,我的意思是我想知道它的行号和列号(不是列名)。
让我们用下面的数据帧做一个例子df
:
hi apple fine
right yes okay
maybe apple no
我想找到所有苹果的位置,所以我想知道第 0 行第 1 列有一个 apple
,第 2 行第 1 列有一个 apple
。
我怎样才能找到这些号码?
我开始寻找所有满足条件的地方,即该元素确实包含我正在寻找的字符串,其中:
df[df=='apple']
这很好,但我如何获得所有 True
的位置?
我试过这个 df.index[df=='apple'].tolist()
但它给出了一个错误,因为有多个列。我知道我可以通过 运行 遍历所有列的 for 循环来解决这个问题,但想知道是否有更直接的方法。 str.find()
也没有给我列号。我也研究了 get_loc
但这似乎只适用于索引。
您可以使用 np.argwhere
:
print(np.argwhere(df.values == "apple"))
打印:
[[0 1]
[2 1]]
作为列表:
print(np.argwhere(df.values == "apple").tolist())
打印:
[[0, 1], [2, 1]]