pymysql写入时,遇到pandas dataframe中有混合的数据类型以及nan值

当遇到nan值无法写入mysql数据库,如果加上

df[pd.isna(df)]=None

又碰到"Cannot do inplace boolean setting on mixed-types with a non np.nan value"。可以乖乖认怂。认怂方式之一:

def importExcelToMysql(cur, objt):
    
    query = """REPLACE INTO origContactInfo (deviceRecordKey, fax, phone, email, importTime, updateTime) VALUES (%s, %s, %s, %s, %s, %s)"""
    for parent, dirnames, filenames in os.walk(objt.path_url):
        for filename in filenames:
            print(filename)
            excel_path = os.path.join(objt.path_url, filename)
            # 读取excel文件
            workbook = read_excel_with_file_name(excel_path)
            worksheet = workbook[objt.contact_sheet_name]
            row_count = len(worksheet)
            # 将表中每一行数据读到sqlstr数组中
            for i in range(1, row_count):
                current_time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
                valuestr = worksheet.loc[i].values.tolist()
#########################认怂大法在此###################################
                for find_nan in range(0,len(valuestr)): 
                    if pd.isna(valuestr[find_nan]):
                        valuestr[find_nan]=""
######################################################################
                valuestr.append(current_time)
                valuestr.append(current_time)
                valuestr = tuple(valuestr)
                # 将每行数据存到数据库中
                cur.execute(query, valuestr)
            print(filename + " finished writing to DB!")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

取啥都被占用

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值