首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Dataframe的字符串操作

Dataframe的字符串操作
EN

Stack Overflow用户
提问于 2018-06-02 08:30:13
回答 1查看 132关注 0票数 0

我从信用卡对账单中提取了文本,只对整个月内的交易进行了切片,并将其保存在一个列表中。该列表有404个字符串,该列表的摘录如下所示:

代码语言:javascript
复制
['Apr',
 '27',
 'UBER',
 'TECHNOLOGIES',
 'INC866-576-1039CA',
 '$10.93',
 'Apr',
 '27',
 'UBER',
 'TECHNOLOGIES',
 'INC866-576-1039CA',
 '$11.38',
 'Apr',
 '28',
 'COSTCO',
 'WHSE',
 '#1018HOUSTONTX',
 '$105.02']

正如您所看到的,该列表遵循标准格式,其中一个事务由3部分组成:日期(2个单独的字符串)、描述(2-5个字符串)和金额(1个字符串)。

我的目标是基于这些信息创建一个Pandas Dataframe,但是我很难找到一种方法来操作字符串来正确地分割每个类别(日期、描述、数量)。我认为我需要使用正则表达式和循环的某种组合来完成此任务。

根据评论,从信用卡对账单(PDF)中提取的原始数据也如下所示:

" \nApr 27\nUBER TECHNOLOGIES\nINC866-576-1039CA\n$10.93\nApr 27\nUBER TECHNOLOGIES\nINC866-576-1039CA\n$11.38\nApr 28\nCOSTCO WHSE #1018HOUSTONTX\n$105.02\n"

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-02 08:59:40

您只需使用原始文本即可,根据您的评论,原始文本如下:

代码语言:javascript
复制
Apr 27
UBER TECHNOLOGIES
INC866-576-1039CA
$10.93
Apr 27
UBER TECHNOLOGIES
INC866-576-1039CA
$11.38
Apr 28
COSTCO WHSE #1018HOUSTONTX
$105.02

格式看起来是:

代码语言:javascript
复制
DATE
VENDOR
[EXTRA INFO, OPTIONAL]
$AMOUNT

您可以读取循环中的代码行,如下所示:

代码语言:javascript
复制
txs = []
for line in file:
    date = pd.to_datetime(line)
    vendor = next(file)
    amount = next(file) # might not be amount yet
    while not amount.startswith('$'):
        vendor += amount
        amount = next(file)
    txs.append((date, vendor, amount))

# now create DataFrame
pd.DataFrame(txs)

这里的想法是以块为单位读取文件,每个事务使用一次循环迭代。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50652473

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档