pandas中的DataFrame入门

2019-11-01  本文已影响0人  转身丶即天涯

内容参考自以下博客

https://www.yiibai.com/pandas/python_pandas_dataframe.html

DataFrame简介

在pandas中,它的中文名叫“数据帧”,DataFrame用于描述一个二维数据结构,可以用来表示‘关系数据库表’ 或者 ‘二维矩阵’等等。

创建DataFrame

DataFrame的构造函数
image.png
构造函数参数
image.png

可以看到DataFrame支持很多类型的数据,接下来依次尝试。

1. 使用dict作数据源
import pandas as pd


d = {
    'column1': [1, 2],
    'column2': [3, 4]
}
df = pd.DataFrame(data=d)

print(df)
image.png

在控制台的输出中可以看到,dict的key被作为列明展示了出来。
如果只想单纯的传入数据,然后由我们自己制定行名和列名呢?
可以尝试一下用list作为数据源。

2. 使用list作数据源
l = [
    [1, 2],
    [3, 4]
]
df = pd.DataFrame(data=l, index=['row1', 'row2'], columns=['column1', 'column2'])

print(df)
image.png

这次在构造DataFrame时传入了三个构造参数,index表示行名,columns表示列明,它们接受的都是一个序列容器。
那么有哪些序列是允许的呢?list, tuple,set是可以的,虽然字符串虽然也是序列,但是不行,会引发TypeError异常。

3. 使用tuple作数据源
t = (
    (1, 2, 3, 4),
    (5, 6, 7, 8)
)

df = pd.DataFrame(data=t, index=range(len(t)), columns=('col1', 'col2', 'col3', 'col4'))

print(df)
image.png

经过测试,data参数是支持tuple结构的。
而且顺便发现index的序列的个数要和data中行的数目一致。columns参数应该也是同理。

4. 使用set作数据源

集合的构造函数set()是个很神奇的函数,它可以帮助我们把一个序列中重复的值去掉。
在数据处理和分析的过程中也会经常用到,测试一下set是否可以构造DataFrame。

image.png

很遗憾,set不支持,理由是set无法被hash,具体原因不详,先不管了。

DataFrame的属性

作为pandas中最重要的类,属性我们应该有所了解,才能方便coding。
以刚刚用list作数据源生成的DataFrame为例,在df那里打个断点,然后在Debugger中看一下。


image.png
image.png

上面两张图可以看到,属性真是多的一匹...
想要一下子都看懂,几乎是不可能了,先找几个常用的、重要的看看就得了。

我认为以下几个属性应该会比较常用:

1. T:转置矩阵。
image.png
2. axes: 坐标轴信息(或者说是 行列信息)
image.png

那么如何把行和列的信息拿出来的呢 ?
行信息:DataFrame.axes[0].values.array
列信息:DataFrame.axes[1].values.array

3. shape: 矩阵形状
image.png

tuple中第一个元素2,表示有2行。
tuple中第二个元素2,表示有2列。

4. values: DataFrame的取值属性
image.png

如果比如说我想取第2行第1的数据呢?

# 别忘了,下标是从0开始的
df.values[1][0]         # output: 3
关于DataFrame的其他属性

有个网站的总结的不错,传送门:http://liao.cpython.org/pandas09/

上一篇下一篇

猜你喜欢

热点阅读