我需要通过读取包含近 50,000 行和 81 列的 Excel 电子表格来在 Python 中创建 pandas 数据框。该文件包含有关各种医疗专业人员的信息:医生、护士、执业护士等。我只想读取“PROFTYPE”列值为“NURSEPRACT”的行。
我使用的是Python 3.73,并且我已经读入了整个文件,然后我通过 PROFTYPE 列对其进行了修剪;但阅读时间太长。我只想读取 PROFTYPE == 'NURSEPRACT' 的行。
df_np = pd.read_excel(SourceFile, sheetname='Data', header=0)
df_np = df_np[df_np['PROFTYPE'] == 'NURSEPRACT']
这段代码实际上有效,但那是因为我首先读取整个文件。实际上,我只想阅读那些满足 PROFTYPE = 'NURSEPRACT' 条件的内容。
最佳答案
一个想法是你可以
- 仅加载“PROFTYPE”列,
- 确定非护士执业者行,
- 加载整个表以仅保留执业护士行。
该策略正在发挥作用:
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
关于python - 如何从 Excel 电子表格中仅读取满足特定条件的行到 Python 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57576677/