需求:pandas dateframe 格式的表格中,某一列中含有空格的如下类型的数据,要求提取空格以后的数据用于运算
由于 图上的数据不够明显,其实如
第0行3日价格变化指数为: 1-11空格1 (1-11 1),
5日价格变化指数为: 111-11空格3 (111-11 3),
我们要用的数据为空格后的数据,所以需要把它提取出来,重新建一列,用于整个表格的排序。
对于一般字符串,我们知道相这样的数据,需要先进行拆分,再进行提取,如
相对比较简单。
但对于pandas 数据框中的数据,我们用相同的方法,进行数据提取时,就会出现报错的情况:
selected_stock['价变指数'] = selected_stock[sort_by_col].str.split(' ')[1]
出现这种情况,说明长度不匹配,语句的使用方法有误。
如果我们仅用空格进行分割,不取值,可以正确运行,得到以下结果。
数据此时以加了括号的列表的形式出现,说明上一步直接用列表取数法是没有问题,但取列表第二个数时,和原来表格匹配上出了问题。
既然这一列数据变成了列表格式,那么我们再用pandas 的str 方法将该列数据进行再处理后取值,得到什么结果呢?
Bingo,问题解决了。
df['价变指数'] = df['10日价格变化指数'].str.split(' ').str[1]
收藏或记住这个语句,以备不时之需。