使用条件跳过文件Pandas阅读广场

2024-04-25 19:23:44 发布

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

我试图从数据库文件(如MS Access文件)中读取要使用的列中的值,但前提是满足特定条件。你知道吗

我有26个不同的MS-access文件代表了26个不同年份的数据库。你知道吗

import pyodbc
import pandas as pd
import numpy as np
k = 1993 + np.arange(24)

for i in k:
    print(i)
    DBfile = r'D:\PMIS1993_2016'+'\\'+str(i)+'\\pmismzxpdata_'+str(i)+'.mdb'
    print(DBfile)
    conn = pyodbc.connect('DRIVER={Microsoft Access Driver (*.mdb)};DBQ='+DBfile)
    cur = conn.cursor()
    qry = "SELECT JCP_FAILED_JNTS_CRACKS_QTY, JCP_FAILURES_QTY, JCP_SHATTERED_SLABS_QTY, JCP_LONGITUDE_CRACKS_QTY, JCP_PCC_PATCHES_QTY FROM PMIS_JCP_RATINGS WHERE BEG_REF_MARKER_NBR = '0342' and BEG_REF_MARKER_DISP LIKE '0.5' and RATING_CYCLE_CODE = 'P'"
    dataf = pd.read_sql(qry, conn)
    print(dataf)
    D = list(dataf.values[0])
    print(D)

    conn.close()

在这里,我试图读取变量的值:当BEG\u REF\u MARKER\u NBR='0342'和BEG\u REF\u MARKER\u DISP像'0.5'和RATING\u CYCLE\u CODE='p'时,JCP\u FAILED\u CRACKS\u QTY、JCP\u FAILURES\u QTY、JCP\u breaked\u slapes\u QTY和JCP\u longitu CRACKS\u QTY、JCP\u PCC\u PATCHES\u QTY。你知道吗

然而,并非每年都符合BEG\ U REF\ U MARKER\ U NBR='0342'和BEG\ U REF\ U MARKER\ U DISP的条件,如'0.5'和评级\周期\代码='p'。你知道吗

因此,我想跳过不满足这些条件的年份,例如if else函数表示不满足这些条件的年份。你知道吗

如果您有任何帮助或想法,我将非常感谢。你知道吗

以撒


Tags: 文件importrefconnmarkerdbfileqtyprint
1条回答
网友
1楼 · 发布于 2024-04-25 19:23:44

可以使用^{}属性:

In [11]: pd.DataFrame().empty  # This DataFrame has no rows
Out[11]: True

例如,要跳过空的dataf

if not dataf.empty:
    D = list(dataf.values[0])
    print(D)

相关问题 更多 >