栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用read_csv将财务数据导入Python Pandas

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用read_csv将财务数据导入Python Pandas

您可以在调用以下命令后使用向量化的字符串方法来解析这些列

read_csv

import pandas as pdimport decimalD = decimal.Decimaldata = pd.read_csv('data', parse_dates=[[0,1]], infer_datetime_format=True)for col in ('active_accounts', 'transaction_count'):    data[col] = data[col].str.replace(r',', '').astype(int)data['transaction_amount'] = (data['transaction_amount']        .str.replace(r'[^-+d.]', '').astype(D))print(data.dtypes)# date_begin_date_end    object# name        object# name_pre    int64# active_accounts         int64# transaction_amount     object# transaction_count       int64# dtype: objectprint(data)

产量

    date_begin_date_end    name  name_pre  active_accounts      1/1/2008 1/31/2008  Name_1       1001123456   1    2/1/2008 2/29/2008  Name_1       1001 43210   2    3/1/2008 3/31/2008  Name_1       1001485079   3  12/1/2008 12/31/2008  Name_1       1001 87543   4    1/1/2008 1/31/2008  Name_2       1002268456   5    2/1/2008 2/29/2008  Name_2       1002 53210  transaction_amount  transaction_count  0         7890123.45   67890  1          987654.32  109876  2      1265789433.98  777888  3          432098987   87987  4          890123.45   97890  5          987654.32  109876

PS。

read_csv
确实有一个
converters
参数
,您可以使用该参数提供解析有问题的列的函数。每个字符串一次调用这些函数。如果您有很多行,则可能需要很多Python函数调用。如上所示,使用矢量化字符串方法处理列应该更快。

import pandas as pdimport reimport decimalD = decimal.Decimaldef make_parser(cls):    def parse_commas(text):        return cls(re.sub(r'[^-+d.]', '', text))    return parse_commasto_int = make_parser(int)to_decimal = make_parser(D)data = pd.read_csv('data', parse_dates=[[0,1]], infer_datetime_format=True        , converters={4: to_int, 5: to_decimal, 6: to_int})print(data)

产量

    date_begin_date_end    name  name_pre  active_accounts      1/1/2008 1/31/2008  Name_1       1001123456   1    2/1/2008 2/29/2008  Name_1       1001 43210   2    3/1/2008 3/31/2008  Name_1       1001485079   3  12/1/2008 12/31/2008  Name_1       1001 87543   4    1/1/2008 1/31/2008  Name_2       1002268456   5    2/1/2008 2/29/2008  Name_2       1002 53210  transaction_amount  transaction_count  0         7890123.45   67890  1          987654.32  109876  2      1265789433.98  777888  3          432098987   87987  4          890123.45   97890  5          987654.32  109876

且该

transaction_amount
列中的值为十进制。

In [64]: data.loc[0, 'transaction_amount']Out[64]: Decimal('7890123.45')


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/393642.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号