赞
踩
先来看看它的定义:
class DataFrame(
data=None,
index: Optional[Axes]=None, # 行标
columns: Optional[Axes]=None, # 列标
dtype: Optional[Dtype]=None, # 存储的数据类型
copy: bool=False)
我们可以直接创建空的dataframe,也可以在创造时就输入数据。
创建一个简单的dataframe:
import pandas as pd
aa = pd.DataFrame(index=range(3),
columns=['a', 'b', 'c'])
在这个dataframe中是没有数据的,如果输出就会看到:
a | b | c | |
---|---|---|---|
0 | NaN | NaN | NaN |
1 | NaN | NaN | NaN |
2 | NaN | NaN | NaN |
那我们来详细的看一下loc()
函数吧,它允许的输入有:
A single label, e.g. `5` or `‘a’`, (note that `5` is
interpreted as a label of the index, and never as an
integer position along the index).
A list or array of labels, e.g. `[‘a’, ‘b’, ‘c’]`.
A slice object with labels, e.g. `‘a’:‘f’`.
所以,我们可以向aa里面添加一些数据,简单的按行添加:
aa.loc[index] = 1, 2, 3
aa.loc[index] = (1, 2, 3)
这两种方式的添加结果都是一样的,if index == 0:
a | b | c | |
---|---|---|---|
0 | 1 | 2 | 3 |
1 | NaN | NaN | NaN |
2 | NaN | NaN | NaN |
但是,我们需要将添加的数据数量控制好,不然就会出现这样的error:
ValueError: could not broadcast input array from shape (2,) into shape (3,)
除此之外,我们不仅可以向其中添加int型数据,还可以添加些奇奇怪怪的数据,比如:
aa.loc[0] = (0, (0.5,), (0.5,))
或者更复杂一点:
aa.loc[0] = ((0, (0.5,), (0.5,)), (0, 0.5), 0)
这个时候,这些数据就被存储到dataframe中了,但是会有一个warning,用来提醒你,如果想要存奇奇怪怪多种多样的数据类型,就需要在创建dataframe的时候,添加属性dtype=object
,这样就不会有warning啦!
如果是按照列添加呢?
直接使用loc函数试试:
aa.loc['a'] = 0
然后,我发现,aa增加了一个新的行,index=‘a’,看来这个方法是不可行的,憨憨的我想起了这个方法类似于二维数组,所以,用一个新的方法试试:
aa.loc[:, 'a'] = 0
成功啦!他将column=‘a’的一列数据都变成了0。同时呢,我也发现,可以使用loc函数更改aa中每一个位置的值,只要你知道它的index和column。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。