我有一组计算机生成的通知保存在一个文本文件中-它看起来如下所示:

  • My Company LLC:报表#123456 for$for00.99 for 2023年2月
  • My Company LLC:2022年09年100.01美元的报表#123457(SEP)
  • My Company LLC:报表编号123458-2022年10月51美元

Ideal Output - as DataFrame

Statement Amount Month
123456 10000.99 2023 02 (FEB)
123457 100.01 2022 09 (SEP)
123458 -51 2022 10 (OCT)

我知道我可以把它变成一个在Python之外的CSV,然后把它和Pandas 一起导入.

但是,我可以按原样将文本文件加载到Python中,并将其转换为DataFrame吗?

一个"提示"-在本例中,单词for可以用作我的列分隔符.它可以可靠地将每一行划分为我想要的字段.这是一点运气.

推荐答案

您期望的数据帧is not clear的格式,但这里有一个包含extract的选项:

df = (
        pd.read_csv("input2.txt", header=None, sep="|").squeeze()
            .str.extract("(.*): Statement# (.*) for (.*) for the month of (\d+) (\d+) \((\w+)\)")
            .set_axis(["company_name", "statement", "amount", "year", "month_number", "month_name"], axis=1)
      )

发帖主题:Re:Kolibrios

print(df)
​
     company_name statement     amount  year month_number  month_name
0  MY COMPANY LLC    123456  $10000.99  2023           02         FEB
1  MY COMPANY LLC    123457    $100.01  2022           09         SEP
2  MY COMPANY LLC    123458    -$51.00  2022           10         OCT

Python-3.x相关问答推荐

如何翻转以列形式给出的日期间隔并提取多个重叠时段内每小时的音量?

Python GUI:tkinter应用程序作为Windows的实时桌面

visual studio代码窗口中未激活虚拟环境11

如何将项目添加到Python中具有固定大小的列表列表中

AddMultplicationEquality() 用于多个变量

如何将 WebDriver 传输到导入的测试?

使用 Python 截断并重新编号对应于特定 ID/组的列

转换Pandas 数据框 - 添加行

删除Pandas 数据框行不起作用

在不使用字符串方法的情况下查找字符串最后一个单词的长度 - Python

每个数据行中每个数据帧值的总和

如何从脚本中提取 PDF 文档的标题以进行重命名?

python 3中的SQLAlchemy ER图

Python从base64转换为二进制

Python socket.error: [Errno 13] 权限被拒绝

创建一个可旋转的 3D 地球

在 sklearn.decomposition.PCA 中,为什么 components_ 是负数?

导入 python 模块而不实际执行它

在 macbook pro M1 上安装 Tensorflow 时出现zsh:非法硬件指令 python

哪个更有效:Python 文档字符串还是类型提示?