将Pandas中的字符串列转换为数字

2024-09-19 23:32:25 发布

您现在位置:Python中文网/ 问答频道 /正文

如何将“单位”列转换为数值?在

我有一个谷歌电子表格,我正在阅读的日期列转换罚款。。但是我没有太多的运气让Unit Sales列转换成数字我包括了所有使用请求来获取数据的代码:

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

我试着用不同的方法让单位变成数值

^{pr2}$

然后我想重新采样,我得到奇怪的字符串连接,因为数字仍然是字符串

#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

Tags: csvtheimportdateunit单位数字requests
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

必须指定千位分隔符:

actdf = pd.read_csv(StringIO(dataact), index_col=0, parse_dates=['date'], thousands=',')

相关问题 更多 >