pandas 自动将我的字符串列转换为浮点数

2023-11-25

我该怎么做才能防止 pandas 将我的字符串值转换为浮点数。专栏Billing Doc. and Sales Order包含 10-11 位数字,这些数字将存储在 MySQL 表中数据类型为 CHAR(15) 的列内。当我执行以下脚本时,我看到.0在每个数字的末尾。我想在我们的数据库中将它们视为字符串/字符。 这Billing Doc.字段包含数字,例如3206790137, 3209056079, 3209763880, 3209763885, 3206790137谁在数据库中存储为3206790137.0, 3209056079.0, 3209763880.0, 3209763885.0, 3206790137.0。数据库中计费文档的列数据类型为CHAR(15).

def insert_billing(df):
        df = df.where((pd.notnull(df)), None)
        for row in df.to_dict(orient="records"):
            bill_item = row['Bill.Item']
            bill_qty = row['Billed Qty']
            bill_doct_date = row['Billi.Doc.Date']
            bill_doc = row['Billing Doc.']
            bill_net_value = row['Billi.Net Value']
            sales_order = row['Sales Order']
            import_date = DT.datetime.now().strftime('%Y-%m-%d')


            query = "INSERT INTO sap_billing(" \
                    "bill_item, " \
                    "bill_qty, " \
                    "bill_doc_date, " \
                    "bill_doc, " \
                    "bill_net_value, " \
                    "sales_order, " \
                    "import_date" \
                    ") VALUES (" \
                    "\"{}\", \"{}\", \"{}\", \"{}\"," \
                    "\"{}\", \"{}\", \"{}\"" \
                    ") ON DUPLICATE KEY UPDATE " \
                    "bill_qty = VALUES(bill_qty), " \
                    "bill_doc_date = VALUES(bill_doc_date), " \
                    "bill_net_value = VALUES(bill_net_value), " \
                    "import_date = VALUES(import_date) " \
                    "".format(
                        bill_item,
                        bill_qty,
                        bill_doct_date,
                        bill_doc,
                        bill_net_value,
                        sales_order,
                        import_date
                        )
            query = query.replace('\"None\"', 'NULL')
            query = query.replace('(None', '(NULL')
            query = query.replace('\"NaT\"', 'NULL')
            query = query.replace('(NaT', '(NULL')

            try:
                q1 = gesdb_connection.execute(query)
            except Exception as e:
                print(bill_item, bill_doc, sales_order, e)



    if __name__ == "__main__":
        engine_str = 'mysql+mysqlconnector://root:abc123@localhost/mydb'

        file_name = "tmp/dataload/so_tracking.XLSX"
        df = pd.read_excel(file_name)
        if df.shape[1] == 35 and compare_columns(list(df.columns.values)) == 1:
            insert_billing(df)
        else:
            print("Incorrect column count, column order or column headers.\n")

当我创建一个简单的 df 并打印它时,问题不会出现。

import pandas as pd
df = pd.DataFrame({'Sales Order': [1217252835, 1217988754, 1219068439], 
                   'Billing Doc.': [3222102723, 3209781889, 3214305818]})
    >>> df
   Billing Doc.  Sales Order
0    3222102723   1217252835
1    3209781889   1217988754
2    3214305818   1219068439

但是,当我通读 Excel 然后打印它时,该列被读取为 float64。

 file_name = "tmp/dataload/so_tracking.XLSX"
    df = pd.read_excel(file_name)
    print(df['Billing Doc.'])

680    3.252170e+09
681    3.252170e+09
682    3.252170e+09
683    3.252170e+09
684    3.252170e+09
685    3.252170e+09
686    3.252170e+09
687    3.252170e+09
688    3.252170e+09
689    3.252170e+09
690    3.252170e+09
.
.
.
694    3.251601e+09
695    3.251631e+09
696    3.252013e+09
697             NaN
698    3.252272e+09
699    3.252360e+09
700    3.252474e+09
.
.
Name: Billing Doc., dtype: float64

我自己找到了解决方案,在这里发布以记录它。

df = pd.read_excel(file_name, converters={'Billing Doc.' : str})
print(df['Billing Doc.'])

695    3251631331
696    3252012614
697           NaN
698    3252272451
699    3252359504
700    3252473894
701           NaN
702           NaN
703           NaN
704    3252652940
705           NaN
706           NaN
707           NaN
708           NaN
Name: Billing Doc., dtype: object
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

pandas 自动将我的字符串列转换为浮点数 的相关文章

  • 导入错误:没有名为 _ssl 的模块

    带 Python 2 7 的 Ubuntu Maverick 我不知道如何解决以下导入错误 gt gt gt import ssl Traceback most recent call last File
  • 如何在 Sublime Text 2 的 OSX 终端中显示构建结果

    我刚刚从 TextMate 切换到 Sublime Text 2 我非常喜欢它 让我困扰的一件事是默认的构建结果显示在 ST2 的底部 我的程序产生一些很长的结果 显示它的理想方式 如在 TM2 中 是并排查看它们 如何在 Mac 操作系统
  • 如何等到 Excel 计算公式后再继续 win32com

    我有一个 win32com Python 脚本 它将多个 Excel 文件合并到电子表格中并将其另存为 PDF 现在的工作原理是输出几乎都是 NAME 因为文件是在计算 Excel 文件内容之前输出的 这可能需要一分钟 如何强制工作簿计算值
  • 打破嵌套循环[重复]

    这个问题在这里已经有答案了 有没有比抛出异常更简单的方法来打破嵌套循环 在Perl https en wikipedia org wiki Perl 您可以为每个循环指定标签 并且至少继续一个外循环 for x in range 10 fo
  • 为 pandas 数据透视表中的每个值列定义 aggfunc

    试图生成具有多个 值 列的数据透视表 我知道我可以使用 aggfunc 按照我想要的方式聚合值 但是如果我不想对两列求和或求平均值 而是想要一列的总和 同时求另一列的平均值 该怎么办 那么使用 pandas 可以做到这一点吗 df pd D
  • 安装后 Anaconda 提示损坏

    我刚刚安装张量流GPU创建单独的后环境按照以下指示here https github com antoniosehk keras tensorflow windows installation 但是 安装后当我关闭提示窗口并打开新航站楼弹出
  • NameError:名称“urllib”未定义”

    CODE import networkx as net from urllib request import urlopen def read lj friends g name fetch the friend list from Liv
  • 在pyyaml中表示具有相同基类的不同类的实例

    我有一些单元测试集 希望将每个测试运行的结果存储为 YAML 文件以供进一步分析 YAML 格式的转储数据在几个方面满足我的需求 但测试属于不同的套装 结果有不同的父类 这是我所拥有的示例 gt gt gt rz shorthand for
  • 当玩家触摸屏幕一侧时,如何让 pygame 发出警告?

    我使用 pygame 创建了一个游戏 当玩家触摸屏幕一侧时 我想让 pygame 给出类似 你不能触摸屏幕两侧 的错误 我尝试在互联网上搜索 但没有找到任何好的结果 我想过在屏幕外添加一个方块 当玩家触摸该方块时 它会发出警告 但这花了很长
  • 使用 OpenPyXL 迭代工作表和单元格,并使用包含的字符串更新单元格[重复]

    这个问题在这里已经有答案了 我想使用 OpenPyXL 来搜索工作簿 但我遇到了一些问题 希望有人可以帮助解决 以下是一些障碍 待办事项 我的工作表和单元格数量未知 我想搜索工作簿并将工作表名称放入数组中 我想循环遍历每个数组项并搜索包含特
  • Python 3 中“map”类型的对象没有 len()

    我在使用 Python 3 时遇到问题 我得到了 Python 2 7 代码 目前我正在尝试更新它 我收到错误 类型错误 map 类型的对象没有 len 在这部分 str len seed candidates 在我像这样初始化它之前 se
  • Nuitka 未使用 nuitka --recurse-all hello.py [错误] 编译 exe

    我正在尝试通过 nuitka 创建一个简单的 exe 这样我就可以在我的笔记本电脑上运行它 而无需安装 Python 我在 Windows 10 上并使用 Anaconda Python 3 我输入 nuitka recurse all h
  • 如何在 Django 中使用并发进程记录到单个文件而不使用独占锁

    给定一个在多个服务器上同时执行的 Django 应用程序 该应用程序如何记录到单个共享日志文件 在网络共享中 而不保持该文件以独占模式永久打开 当您想要利用日志流时 这种情况适用于 Windows Azure 网站上托管的 Django 应
  • Python:计算字典的重复值

    我有一本字典如下 dictA unit1 test1 alpha unit1 test2 beta unit2 test1 alpha unit2 test2 gamma unit3 test1 delta unit3 test2 gamm
  • glpk.LPX 向后兼容性?

    较新版本的glpk没有LPXapi 旧包需要它 我如何使用旧包 例如COBRA http opencobra sourceforge net openCOBRA Welcome html 与较新版本的glpk 注意COBRA适用于 MATL
  • 对输入求 Keras 模型的导数返回全零

    所以我有一个 Keras 模型 我想将模型的梯度应用于其输入 这就是我所做的 import tensorflow as tf from keras models import Sequential from keras layers imp
  • 在python中,如何仅搜索所选子字符串之前的一个单词

    给定文本文件中的长行列表 我只想返回紧邻其前面的子字符串 例如单词狗 描述狗的单词 例如 假设有这些行包含狗 hotdog big dog is dogged dog spy with my dog brown dogs 在这种情况下 期望
  • 协方差矩阵的对角元素不是 1 pandas/numpy

    我有以下数据框 A B 0 1 5 1 2 6 2 3 7 3 4 8 我想计算协方差 a df iloc 0 values b df iloc 1 values 使用 numpy 作为 cov numpy cov a b I get ar
  • Python - 字典和列表相交

    给定以下数据结构 找出这两种数据结构共有的交集键的最有效方法是什么 dict1 2A 3A 4B list1 2A 4B Expected output 2A 4B 如果这也能产生更快的输出 我可以将列表 不是 dict1 组织到任何其他数
  • PyAudio ErrNo 输入溢出 -9981

    我遇到了与用户相同的错误 Python 使用 Pyaudio 以 16000Hz 录制音频时出错 https stackoverflow com questions 12994981 python error audio recording

随机推荐

  • BIRT:pdf 发射器,从相对路径或 jar 文件加载/使用字体

    我从很早开始就使用 BIRT 但对于 PDF 发射器仍然有一些疑问 短篇故事 我可以配置 fontsConfig xml 从相对路径或 jar 加载字体吗 很长的故事 我们使用 FOP 和 BIRT 在 Web 应用程序中生成 PDF 在库
  • 如何使用 swift 在 IOS coredata 中将 MKPolyline 属性存储为可转换?

    允许在 CoreData 中快速存储 MKPolyline 所需的代码是什么 例如 如果我有一个核心数据实体 例如 myEntity 我想为其保存 MKPolyline 并将 polyline 字段添加为可变换 并在 xcode 中将其设置
  • 如何在 Winforms 文本框中允许使用 CTRL-V(粘贴)?

    我在 Windows 窗体上有几个文本框 我无法使用 CTRL V 将文本粘贴到其中任何一个中 但我仍然可以右键单击并选择粘贴 这很烦人 我已经尝试过将表单的 KeyPreview 设置为 true 和 false TextBox Shor
  • 如何在rails控制台(或irb)中输入多字节字符?

    伙计们 我正在用rails开发一个中文应用程序 现在我想在rails控制台中输入一些汉字 但在irb中都无法做到这一点 有哪位大佬有解决这个问题的经验吗 我将感谢您的帮助 根据 Jimmy Huang 的回答 这些是我在 Mac Leopa
  • MongoDB 可以打包在 Electron 应用程序中吗?

    我可以将 MongoDB 打包在 Electron 应用程序中 这样我就不需要将其安装在客户端计算机上吗 我正在 OSX 上开发一个应用程序 它可能会在 Windows 上使用 需要在客户端单独安装Mongo吗 是的 我过去曾使用过这种方法
  • iPhone 应用程序的 WhatsApp url 方案

    我们正在开发一款 iPhone 应用程序并计划集成 Whatsapp 有没有办法从 iPhone 应用程序启用点击通话 消息 Skype 通过以下方式允许这样做 a href Skype a Whatsapp 是否有同等功能 目前 What
  • ggplot 图例中重叠的形状和字符

    当我用相同的颜色绘制点和文本时 a和图例中的形状重叠 我可以告诉 ggplot 不要绘制a传说中 如何 M lt data frame t letters 1 16 xx runif 16 yy runif 16 g rep c A B C
  • 使用 QMAKE 构建 32 位和 64 位版本的项目

    我需要生成应用程序的 32 位版本 但我正在 64 位操作系统上进行编译 我正在寻找一种方法让 QMake 生成我的应用程序的 32 位和 64 位版本 如果这不可能 我想知道如何切换到 32 位 我还想避免弄乱生成的 makefile 使
  • 为什么 subprocess.Popen 不等到子进程终止?

    我对 Python 的 subprocess Popen 方法有疑问 这是一个演示该问题的测试脚本 它正在 Linux 机器上运行 usr bin env python import subprocess import time def r
  • 输入时可编辑内容段落标签

    我想知道是否有一种可接受的方法来强制所有主要浏览器插入段落标签 而不是当 contentEditable 为 true 时按 Enter 键时插入的默认标签 据我所知IE会自动插入p 但 Google Chrome 会插入 div 标签 而
  • grails 中特定于环境的 web.xml?

    构建特定环境的最佳方法是什么web xmlgrails 中的条目 我只需要对生产进行某些修改 因为它们会中断本地运行 有什么想法吗 您可以创建scripts Events groovy带有 WebXmlEnd 事件的事件处理程序 一旦 Gr
  • 在 JBoss AS 7 中设置 SSL

    我正在尝试在 JBoss Application Server 7 中设置 SSL 我想要 http 和 https 所以我添加了
  • java中的final变量和synchronized块

    Java中的final变量是什么 例如 如果我写final int temp 函数中final关键字的含义是什么 另外 我什么时候想使用final变量 既作为类变量又作为函数变量 为什么同步块中的变量必须声明为final Final 变量和
  • Alpine 3.3、Python 2.7.11、urllib2 导致 SSL:CERTIFICATE_VERIFY_FAILED

    我有这个小 Dockerfile FROM alpine 3 3 RUN apk update add python CMD python c import urllib2 response urllib2 urlopen https ww
  • 动态添加 TabItem

    我有一个TabControl控制
  • jQuery 替换 Word 中的空格

    我有一个select在我的页面上value of Test One
  • Java:计算返回错误答案? [复制]

    这个问题在这里已经有答案了 可能的重复 在java中使用双精度数保持精度 以双精度数移动小数位 例如 像这样简单的事情 public class WrongAnswer public static void main String args
  • 如何在预处理时可靠地检测 clang 的版本?

    显然 与 Xcode 捆绑的 clang 不尊重上游 clang major and clang minor 值 而是报告某种面向用户的 Xcode 版本 以下是 clang 的各种 MacPorts 安装的值 仅供参考 他们似乎尊重上游版
  • NUnit,针对多种文化进行测试

    我希望使用 NUnit 针对多种文化运行某个项目中的所有测试 该项目处理应该是文化中立的解析数据 为了确保这一点 我想针对多种文化运行每个测试 我目前的解决方案是 public abstract class FooTests tests g
  • pandas 自动将我的字符串列转换为浮点数

    我该怎么做才能防止 pandas 将我的字符串值转换为浮点数 专栏Billing Doc and Sales Order包含 10 11 位数字 这些数字将存储在 MySQL 表中数据类型为 CHAR 15 的列内 当我执行以下脚本时 我看