当使用xlwings获取数据帧时,isnull()和dropna()不适用于pandas 0.22

时间:2018-03-05 10:59:25

标签: pandas dataframe xlwings

绝望的这个谜。因此,我只是将我的熊猫升级到0.22(从0.18)并神秘地使用xlwings时,dropnaisnull不再起作用。我看到myTemp仍在给我正确的真假 unwindDF会给我所有df_raw数据,只需填充所有内容即可成为nan和naT。类似的问题noPx。

即使我手动将np.nan分配给单元格也是如此但令人惊讶的是,当我在同一个文件中创建一个简单的df到最后,然后myTest1 运作良好。为什么? pandas 0.22有xlwings的特别之处吗?

我的代码在下面,我的xlsx文件在图片中。

import pythoncom
import pandas as pd
import xlwings as xw
import numpy as np


folder_path = 'S:/Order/all PNL files/'
excel_name='pnlTest.xlsx'
pnl_excel_path = folder_path + excel_name
sheetName = 'Sheet1'

pythoncom.CoInitialize()
app = None
bk = None
app_count = xw.apps.count
for i in range(app_count):
    try:
        app = xw.apps[i]
        temp = app.books[excel_name]
        bk = temp
        print()
        print("Using Opened File")
    except:
        print()
if bk == None:
    print("Open New Excel App")
    app = xw.App()
    bk = xw.Book(pnl_excel_path)

bk.app.calculation = 'manual'
bk.app.screen_updating = False

sht = bk.sheets[sheetName]
last_row_index = sht.range('A1').end('down').row
df_raw = sht.range('A1:M' + str(last_row_index)).options(pd.DataFrame, header=1,
index=0).value
myTemp = df_raw['UNWD_DT'].isnull()
unwindDF = df_raw[df_raw['UNWD_DT'].isnull()]
df_raw.loc[10,'Curr_Px']=np.nan
df_raw.iloc[10,11]=np.nan
noPx=df_raw[df_raw['Curr_Px'].isnull()]
df = pd.DataFrame({'a':[0,0,1,1], 'b':[0,1,0,1],'c':[np.nan,1,0,np.nan]})
myTemp1=df['c'].isnull()
myTest1=df[df['c'].isnull()]
df_raw.dropna(thresh=2,inplace=True)
df_raw2=df_raw.dropna(thresh=2)

a

0 个答案:

没有答案