如何使用 python 获取值的 excel cell/row 个数?
How to get excel cell/row number of a value using python?
我有如下所示的数据框
val
5
7
17
95
23
45
df = pd.read_clipboard()
我想获取每个值的 excel cell/index/row 数字
我正在尝试类似下面的操作,但不确定我是否过于复杂
for row in range(1,99999):
for col in range(1,2999999):
if wb.sheets[1].range((row,col)).value == 5:
print("The Row is: "+str(row)+" and the column is "+str(col))
else
row = row + 1
我也尝试过类似下面的方法,但也不起作用
wb.sheets[1].range("A9:B500").options(pd.DataFrame).value
基本上,我有一个值列表,想找出它们出现在excel中的哪一列和哪一行。有人可以帮我吗?
我希望我的输出如下所示。 Excel 行号是 extracted/found 来自 excel
我认为获取索引行最简单的解决方案是使用此命令:
df["index"] = df.index.to_list()
将使用索引值创建一个新列。因此,您可以根据需要使用此列进行格式化。
index
1
2
6
7
10
12
请记住,pandas 数据帧的索引是 zero-based,excel 工作表的行号是 one-based,因此,如果您想解决pandas
这个问题
df["index"] = df.index.astype(int) + 1
正确。但是,请注意,您问题中的图片显示了 excel 工作表的一部分,其中应用了活动过滤器。此处提供的解决方案仅在 excel 中的数据未被过滤时才有效。
更新以回复第一条评论
您还可以在 .isin 中指定值,并使用以下代码(不漂亮)根据索引和列获取它们的位置:
import pandas as pd
df = pd.DataFrame((
(2, 5, 8),
(20, 5, 772),
(0, 20, 5),
(2, 0, 0),
(76, 35, 66),
(23, 21, 29),
(5, 55, 88),
(44, 23, 5),
(1, 2, 3),
), columns=["a", "b", "c"])
cols = df.columns.to_list()
for col in cols:
filt = df[col].isin([5, 2])
df_x = df.loc[filt]
for row, vals in df_x.iteritems():
for val in vals.index:
print(f"index:{val:4} column: {col}")
我有如下所示的数据框
val
5
7
17
95
23
45
df = pd.read_clipboard()
我想获取每个值的 excel cell/index/row 数字
我正在尝试类似下面的操作,但不确定我是否过于复杂
for row in range(1,99999):
for col in range(1,2999999):
if wb.sheets[1].range((row,col)).value == 5:
print("The Row is: "+str(row)+" and the column is "+str(col))
else
row = row + 1
我也尝试过类似下面的方法,但也不起作用
wb.sheets[1].range("A9:B500").options(pd.DataFrame).value
基本上,我有一个值列表,想找出它们出现在excel中的哪一列和哪一行。有人可以帮我吗?
我希望我的输出如下所示。 Excel 行号是 extracted/found 来自 excel
我认为获取索引行最简单的解决方案是使用此命令:
df["index"] = df.index.to_list()
将使用索引值创建一个新列。因此,您可以根据需要使用此列进行格式化。
index
1
2
6
7
10
12
请记住,pandas 数据帧的索引是 zero-based,excel 工作表的行号是 one-based,因此,如果您想解决pandas
这个问题df["index"] = df.index.astype(int) + 1
正确。但是,请注意,您问题中的图片显示了 excel 工作表的一部分,其中应用了活动过滤器。此处提供的解决方案仅在 excel 中的数据未被过滤时才有效。
更新以回复第一条评论
您还可以在 .isin 中指定值,并使用以下代码(不漂亮)根据索引和列获取它们的位置:
import pandas as pd
df = pd.DataFrame((
(2, 5, 8),
(20, 5, 772),
(0, 20, 5),
(2, 0, 0),
(76, 35, 66),
(23, 21, 29),
(5, 55, 88),
(44, 23, 5),
(1, 2, 3),
), columns=["a", "b", "c"])
cols = df.columns.to_list()
for col in cols:
filt = df[col].isin([5, 2])
df_x = df.loc[filt]
for row, vals in df_x.iteritems():
for val in vals.index:
print(f"index:{val:4} column: {col}")