如何将Units列数字化?
我有一个谷歌电子表格,我在日期列中读取转换得很好..但我没有太多运气让单位销售列转换为数字我包括所有使用请求获取的代码数据:
from StringIO import StringIO
import requests
#act = requests.get('https://docs.google.com/spreadsheet/ccc?key=0Ak_wF7ZGeMmHdFZtQjI1a1hhUWR2UExCa2E4MFhiWWc&output=csv&gid=1')
dataact = act.content
actdf = pd.read_csv(StringIO(dataact),index_col=0,parse_dates=['date'])
actdf.rename(columns={'Unit Sales': 'Units'}, inplace=True) #incase the space in the name is messing me up
我试图让单位获得数字
的不同方法actdf=actdf['Units'].convert_objects(convert_numeric=True)
#actdf=actdf['Units'].astype('float32')
然后我想重新采样,我得到奇怪的字符串连接,因为数字仍然是字符串
#actdfq=actdf.resample('Q',sum)
#actdfq.head()
actdf.head()
#actdf
所以df看起来像只有单位和日期索引
date
2013-09-01 3,533
2013-08-01 4,226
2013-07-01 4,281
Name: Units, Length: 161, dtype: object
答案 0 :(得分:3)
您必须指定千位分隔符:
actdf = pd.read_csv(StringIO(dataact), index_col=0, parse_dates=['date'], thousands=',')
答案 1 :(得分:2)
This will work
In [13]: s
Out[13]:
0 4,223
1 3,123
dtype: object
In [14]: s.str.replace(',','').convert_objects(convert_numeric=True)
Out[14]:
0 4223
1 3123
dtype: int64