python 将列表中的字符串转为数字格式,以及pandas Series或index转换为Numpy数组

本文实例讲述了Python中列表元素转为数字的方法

分享给大家供大家参考,具体如下:

1.首先可以用循环来解决(直接粗暴)

举个栗子:

<1>有一个数字字符的列表:

numbers = ['2', '5', '130', '8']`

<2>想要把每个元素转换为数字:

numbers = [2, 5, 130, 8]

用一个循环来解决:

new_numbers = [];
for n in numbers:
  new_numbers.append(int(n));
numbers = new_numbers;

2.有没有更简单的语句可以做到呢?

1.使用列表生成式
.numbers = [ int(x) for x in numbers ]
2. Python2.x,可以使用map函数
numbers = map(int, numbers)
3.如果是3.x,map返回的是map对象,当然也可以转换为List:
numbers = list(map(int, numbers))
4..还有一种比较复杂点:
for i, v in enumerate(numbers): numbers[i] = int(v)

额外(遇到的问题补充<踩坑>):

如何将pandas Series或index转换为Numpy数组?

1.要获取NumPy数组,您应该使用以下values属性:

In [1]: df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}, index=['a', 'b', 'c']); df
   A  B
a  1  4
b  2  5
c  3  6
In [2]: df.index.values

Out[2]: array(['a', 'b', 'c'], dtype=object)

2.这可以访问数据的存储方式,因此无需进行转换。
注意:此属性也可用于许多其他pandas的对象。

In [3]: df['A'].values

Out[3]: Out[16]: array([1, 2, 3])

3.要将索引作为列表,请调用tolist:

In [4]: df.index.tolist()

Out[4]: ['a', 'b']

同样,对于列。

编码踩坑的纪实
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章