pd.DataFrame()用法简单记录

pd.DataFrame()

先来看看它的定义:

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中是没有数据的,如果输出就会看到:

abc
0NaNNaNNaN
1NaNNaNNaN
2NaNNaNNaN

loc()函数

那我们来详细的看一下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:

abc
0123
1NaNNaNNaN
2NaNNaNNaN

但是,我们需要将添加的数据数量控制好,不然就会出现这样的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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值