我有一段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)
很可能您的空白值实际上是
nan
,而不是""
。你知道吗您可以按以下方式进行更改:
在你考试之前。你知道吗
相关问题 更多 >
编程相关推荐