我有两张.xlsx
纸,如下所示。我需要阅读它们并在python中进行一些计算。
data.xlsx
cola colb colc cold
-------------------------------
a1 | test | PASS | 1234
b2 | hello | FAIL | 2345
c3 | world | PASS | 1134
d4 | tree | PASS | 3321
e5 | swer | FAIL | 9801
程序.xlsx
colf
----
3321
1234
现在我需要阅读data
和program
Excel和发现的总数PASS
和FAIL
,但所有这些cold
列data
Excel,这些未在colf
列program
的Excel。这意味着我需要删除从行data
Excel中,其中colf
在program
Excel中与匹配cold
的data
Excel,然后计算总的PASS
和FAIL
。
因此输出应如下所示。我不需要数PASS
和FAIL
为3321
和1234
。
PASS - 1
FAIL - 2
我在阅读有关熊猫图书馆的更多信息,但无法理解如何使用该逻辑?还是如果有更好的方法可以做到这一点?
import pandas as pd
file_name = 'data.xlsx'
df = pd.read_excel(file_name, index_col=0)
注意:我的excel有很多行,并且它有一些空行,因此需要在代码中也将其过滤掉。
您需要先阅读excel的dataframes
使用技巧pd.read_excel
:
import pandas as pd
data = pd.read_excel('data.xlsx', index_col=0)
program = pd.read_excel('program.xlsx', index_col=0)
现在,使用df.merge
有indicator=True
:
In [572]: x = (
...: data.merge(program, left_on="cold", right_on="colf", how="left", indicator=True)
...: .query('_merge == "left_only"')["colc"]
...: .value_counts()
...: )
...:
In [571]: print(x)
Out[571]:
FAIL 2
PASS 1
Name: colc, dtype: int64
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句