【发布时间】:2015-02-16 13:00:12
【问题描述】:
我有一个具有以下结构的 .csv:
date_begin,date_end,name,name_code,active_accounts,transaction_amount,transaction_count
1/1/2008,1/31/2008,Name_1,1001,"123,456","$7,890,123.45","67,890"
2/1/2008,2/29/2008,Name_1,1001,"43,210","$987,654.32","109,876"
3/1/2008,3/31/2008,Name_1,1001,"485,079","$1,265,789,433.98","777,888"
...
12/1/2008,12/31/2008,Name_1,1001,"87,543","$432,098,987","87,987"
1/1/2008,1/31/2008,Name_2,1002,"268,456","$890,123.45","97,890"
2/1/2008,2/29/2008,Name_2,1002,"53,210","$987,654.32","109,876"
...
etc
我正在尝试使用以下代码将它们读入熊猫数据框:
import pandas as pd
data = pd.read_csv('my_awesome_csv.csv'),parse_dates=[[0,1]],
infer_datetime_format=True)
除了我想控制每列中的数据类型之外,这很好用。当我在解释器中运行以下代码时,我发现引号中的数字不会被识别为数字,无论是美元还是其他。
In [10]: data.dtypes
Out[10]:
date_begin_date_end object
name object
name_code int64
active_accounts object # Problem, I want this to be a number
transaction_amount object # Ditto, I want this to be a number (it's a dollar amount)
transaction_count object # Still a number!
dtype: object
我已经在Pandas csv documentation 中进行了一些窥探,但还没有找到我正在寻找的关于在 csv 中将它们保存为带有逗号和美元符号的字符串时声明类型的内容。我的最终目标是能够对这些列中的值进行一些算术运算。
有什么想法吗?
【问题讨论】: