从python中获取值为空的行作为文本

2024-03-29 15:19:56 发布

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

我有一段python代码,它将DB2数据库中的一些数据提取到dataframe data1和data2中。Data2有一个名为ARCD的列,其文本值为“”、'01'、'03'、'14'等

TABLE1
    CSOFF      CSDATE
    ABC        20180101
    ADV        20180212
    AFS        20180121
    ADF        20180202
    ABC        20180115

TABLE2
    AROFF      ARAMT        ARCD      ARTRDT
    ABC        200                    20180101
    AFS        150          01        20180121
    ADV        210                    20180129

我只需要data3中ARCD中的值为空的记录,即“”和“01”。你知道吗

我可以获取所有代码为“01”、“03”等的值,但无法提取具有空值的记录,即“”。你知道吗

import pyodbc
import pandas as pd
con = pyodbc.connect(
    driver='{iSeries Access ODBC Driver}',
    system='',
    uid='',
    pwd='')
cur = con.cursor()
query = """
SELECT * FROM QS99F.TABLE1 WHERE CSDATE > 20180100
"""
data1 = pd.read_sql(query,con,index_col = None)
query = """
SELECT * FROM QS99F.TABLE2 WHERE ARTRDT > 20180100
"""
data2 = pd.read_sql(query,con,index_col = None)
data3 = pd.merge(data1[['CSOFF','CSRATE']],data2[['AROFF','ARAMT','ARCD']],left_on=['CSOFF','CSMKT','CSSUFX'],right_on=['AROFF','ARMKT','ARSUFX'],how='inner')
dp = data3['ARCD'] == "01"
ar = data3['ARCD'] == ""
data3 = data3[dp|ar]
print (data3)

Tags: 代码queryconpdabcafstable1adv
1条回答
网友
1楼 · 发布于 2024-03-29 15:19:56

很可能您的空白值实际上是nan,而不是""。你知道吗

您可以按以下方式进行更改:

data3 = data3.fillna("")

在你考试之前。你知道吗

相关问题 更多 >