如何使用xlwings或pandas获取所有非空单元格?

2024-04-24 12:00:04 发布

您现在位置:Python中文网/ 问答频道 /正文

最近,我需要编写一个python脚本来计算特定字符串在excel表中出现的次数。在

我注意到,只有当单元是连续的时,我们才能使用*xlwings.Range('A1').table.formula*来完成这个任务。如果细胞不是连续的,我怎么能做到呢?在


Tags: 字符串脚本a1tablerangexlwings次数excel
2条回答

这有点老套,但为什么不呢。 顺便说一下,我假设您使用的是python3.x

首先,创建一个新的布尔数据帧,它与您要查找的值相匹配。在

import pandas as pd
import numpy as np

df = pd.read_excel('path_to_your_excel..')

b = df.applymap(lambda x: x == 'value_you_want_to_find' if isinstance(x, str) else False)

然后简单地把所有发生的事情加起来。在

^{pr2}$

如注释中所述,如果您已经有了一个dataframe,那么您可以简单地使用count(注意:必须是一种更好的方法):

df = pd.DataFrame({'col_a': ['a'], 'col_b': ['ab'], 'col_c': ['c']})

string_to_search = '^a$' # should actually be a regex, in this example searching for 'a'
print(sum(df[col].str.count(string_to_search).sum() for col in df.columns))
>> 1

相关问题 更多 >