如何将Excel电子表格中满足特定条件的行读入Python?

2024-05-19 00:21:16 发布

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

我需要通过读取包含近50000行和81列的Excel电子表格,在Python中创建一个pandas数据框。该文件包含有关各种医疗专业人员的信息:医生、护士、执业护士等。我只想在列“PROFTYPE”的值为“NURSEPRACT”的行中读取。你知道吗

我使用的是python3.73,我已经读入了整个文件,然后我用PROFTYPE列对它进行了裁剪;但是读入的时间太长了。我只想读入PROFTYPE=='NURSEPRACT'的那些行。你知道吗

df_np = pd.read_excel(SourceFile, sheetname='Data', header=0)
df_np = df_np[df_np['PROFTYPE'] == 'NURSEPRACT']

这段代码实际上是有效的,但那是因为我首先读取了整个文件。实际上,我只对那些满足PROFTYPE='NURSEPRACT'条件的内容感兴趣。你知道吗


Tags: 文件数据信息pandasdf专业人员np
1条回答
网友
1楼 · 发布于 2024-05-19 00:21:16

一个想法是你可以

  1. 仅加载“PROFTYPE”列
  2. 识别非护士执业医师行
  3. 加载整个表以仅保留行。你知道吗

这一战略正在发挥作用:

df = pd.read_excel(SourceFile,
                   sheet_name='Data',
                   header=0,
                   usecols=['PROFTYPE']) # <  Load just 'PROFTYPE' of the following table
# ID    PROFTYPE    YEARS_IN_PRACTICE  
# 1234  NURSEPRACT  12
# 43    NURSE   32
# 789   NURSEPRACT  4
# 34    PHYSICIAN   2
# 93    NURSEPRACT  13
row_numbers = [x+1 for x in df[df['PROFTYPE'] != 'NURSEPRACT'].index]
df = pd.read_excel(SourceFile, sheet_name='Data', header=0, skiprows=row_numbers)
# ID    PROFTYPE    YEARS_IN_PRACTICE
# 1234  NURSEPRACT  12
# 789   NURSEPRACT  4
# 93    NURSEPRACT  13

相关问题 更多 >

    热门问题