我是靠谱客的博主 舒服马里奥,这篇文章主要介绍python 编程遇到的难点+debug,现在分享给大家,希望可以做个参考。

DataFrame、nparray和list格式之间的转换

将DataFrame转化为nparray

pandas.DataFrame 有values属性
文档解释:Return a Numpy representation of the DataFrame.

复制代码
1
2
3
4
5
6
7
x = pd.DataFrame([[1,3],[2,4],[9,6]]) y = x.values print(x) print(type(x)) print(y) print(type(y))

输出:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
0 1 0 1 3 1 2 4 2 9 6 <class 'pandas.core.frame.DataFrame'> [[1 3] [2 4] [9 6]] <class 'numpy.ndarray'>

DataFrame数据的操作

在Dataframe中新添加一列

复制代码
1
2
3
import pandas as pd data = pd.DataFrame(columns=['a','b'], data=[[1,2],[3,4]])

data

复制代码
1
2
3
4
5
6
7
8
9
10
>>> data a b 0 1 2 1 3 4

增加一列空列

复制代码
1
2
data['c'] = ''

data

复制代码
1
2
3
4
5
6
7
8
9
10
>>> data a b c 0 1 2 1 3 4

新增一列

复制代码
1
2
data['d'] = [5,6]=

data

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
>>> data a b c d 0 1 2 5 1 3 4 6

数组的定义

一维数组的定义

复制代码
1
2
x = [1 for i in range(3)]

输出:

复制代码
1
2
[1, 1, 1]

二维数组的定义

复制代码
1
2
x = [[0 for j in range(4)]for i in range(3)]

输出:

复制代码
1
2
[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]

生成34的二维数组,而非43的二维数组
注意观察:i 在 j 的后面,这样写也是为了表明行的定义在列定义的后面

将多维数据转为一维数组

bug示例:X must be 1D: shape is (1440, 1)
区别a=[[1,2,3,4,5]];a.dim=2
b=[1,2,3,4,5],b.dim=1
a是二维数组,而b是一维数组,两者不可以直接进行赋值(a = b)等类似维度匹配的操作,这是不合法的,所以报错

复制代码
1
2
3
4
5
import operator from functools import reduce a = [[1,2,3], [4,6], [7,8,9,8]] print(reduce(operator.add, a))

输出:

复制代码
1
2
[1, 2, 3, 4, 6, 7, 8, 9, 8]

更多的实现方法请点击

最后

以上就是舒服马里奥最近收集整理的关于python 编程遇到的难点+debug的全部内容,更多相关python内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(82)

评论列表共有 0 条评论

立即
投稿
返回
顶部