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 自动将我的字符串列转换为浮点数 的相关文章

  • 如何返回 cost, grad 作为 scipy 的 fmin_cg 函数的元组

    我怎样才能使 scipy 的fmin cg使用一个返回的函数cost and gradient作为元组 问题是有f对于成本和fprime对于梯度 我可能必须执行两次操作 非常昂贵 grad and cost被计算 此外 在它们之间共享变量可
  • 按边距(“全部”)值列对 Pandas 数据透视表进行排序

    我试图根据 pandas 数据透视表中的行总和对最后一列 边距 aggrfunc 进行降序排序 我知道我在这里错过了一些简单的东西 但我无法弄清楚 数据框 数据透视表 WIDGETS DATE 2 1 16 2 2 16 2 3 16 Al
  • Mypy 无法从文字列表推断项目的类型

    我有一个变量x和一个文字列表 例如 0 1 2 我想转换x这些文字之一 如果x在列表中 我将其退回 否则我返回一个后备值 from typing import Literal Set Foo Literal 0 1 2 foos Set F
  • 使用 Django 将文件异步上传到 Amazon S3

    我使用此文件存储引擎在上传文件时将文件存储到 Amazon S3 http code welldev org django storages wiki Home http code welldev org django storages w
  • Series.sort() 和 Series.order() 有什么区别?

    s pd Series nr randint 0 10 5 index nr randint 0 10 5 s Output 1 3 7 6 2 0 9 7 1 6 order 按值排序并返回一个新系列 s order Output 2 0
  • 使用python从gst管道抓取帧到opencv

    我在用着OpenCV http opencv org 和GStreamer0 10 我使用此管道通过自定义套接字通过 UDP 接收 MPEG ts 数据包sockfd由 python 提供并显示它xvimagesink 而且效果很好 以下命
  • Python Tkinter 模块不显示输出

    我正在尝试学习 Python 并尝试使用 Python 中的 GUI 并遇到了这个 Tkinter 模块 我的代码运行 但运行时窗口没有出现 我的代码如下 from Tkinter import to create a root windo
  • 在Python上获取字典的前x个元素

    我是Python的新手 所以我尝试用Python获取字典的前50个元素 我有一本字典 它按值降序排列 k 0 l 0 for k in len dict d l 1 if l lt 51 print dict 举个小例子 dict d m
  • python 中的 <> 运算符有什么作用?

    我刚刚遇到这个here http www feedparser org feedparser py 总是这样使用 if string1 find string2 lt gt 1 pass 什么是 lt gt 运算符这样做 为什么不使用通常的
  • Spark 和 Python 使用自定义文件格式/生成器作为 RDD 的输入

    我想问一下 Spark 中输入的可能性 我可以看到从http spark apache org docs latest programming guide html http spark apache org docs latest pro
  • 两个不同长度的数据帧的列之间的余弦相似度?

    我在 df1 中有文本列 在 df2 中有文本列 df2 的长度将与 df1 的长度不同 我想计算 df1 text 中每个条目与 df2 text 中每个条目的余弦相似度 并为每场比赛给出分数 输入样本 df1 mahesh suresh
  • 从 Flask 运行 NPM 构建

    我有一个 React 前端 我想在与我的 python 后端 API 相同的源上提供服务 我正在尝试使用 Flask 来实现此目的 但我遇到了 Flask 找不到我的静态文件的问题 我的前端构建是用生成的npm run build in s
  • pandas 相当于 np.where

    np where具有向量化 if else 的语义 类似于 Apache Spark 的when otherwise数据帧方法 我知道我可以使用np where on pandas Series but pandas通常定义自己的 API
  • Ubuntu systemd 自定义服务因 python 脚本而失败

    希望获得有关 Ubuntu 中的 systemd 守护进程服务的一些帮助 我写了一个 python 脚本来禁用 Dell XPS 上的触摸屏 这更像是一个问题 而不是一个有用的功能 该脚本可以工作 但我不想一直启动它 这就是为什么我想到编写
  • Airflow 1.9 - 无法将日志写入 s3

    我在 aws 的 kubernetes 中运行气流 1 9 我希望将日志发送到 s3 因为气流容器本身的寿命并不长 我已经阅读了描述该过程的各种线程和文档 但我仍然无法让它工作 首先是一个测试 向我证明 s3 配置和权限是有效的 这是在我们
  • 使用另一个数据帧在数据帧中创建子列

    我对 python 和 pandas 很陌生 在这里 我有一个以下数据框 did features offset word JAPE feature manual feature 0 200 0 aa 200 200 0 200 11 bf
  • AWS Lambda 不读取环境变量

    我正在编写一个 python 脚本来查询 Qualys API 中的漏洞元数据 我在 AWS 中将其作为 lambda 函数执行 我已经在控制台中设置了环境变量 但是当我执行函数时 出现以下错误 module initialization
  • 如何将带有参数的Python装饰器实现为类?

    我正在尝试实现一个接受一些参数的装饰器 通常带有参数的装饰器被实现为双重嵌套闭包 如下所示 def mydecorator param1 param2 do something with params def wrapper fn def
  • 为什么python+sqlite3特别慢?

    我尝试使用 Python 2 7 4 sqlite3 和 Firefox SQLite Manager 0 8 0 处理对同一数据库的相同请求 在小型数据库 8000 条记录 上 Python 和 Firefox 都运行得很快并且给出了相同
  • python从二进制文件中读取16字节长的双精度值

    我找到了蟒蛇struct unpack 读取其他程序生成的二进制数据非常方便 问题 如何阅读16 字节长双精度数出二进制文件 以下 C 代码将 1 01 写入二进制文件三次 分别使用 4 字节浮点型 8 字节双精度型和 16 字节长双精度型

随机推荐

  • 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 的列内 当我执行以下脚本时 我看