当前位置:   article > 正文

pd.DataFrame()用法简单记录

pd.dataframe

pd.DataFrame()

先来看看它的定义:

class DataFrame(
		data=None, 
		index: Optional[Axes]=None, # 行标
		columns: Optional[Axes]=None,  # 列标
		dtype: Optional[Dtype]=None,  # 存储的数据类型
		copy: bool=False)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

我们可以直接创建空的dataframe,也可以在创造时就输入数据。
创建一个简单的dataframe:

import pandas as pd
aa = pd.DataFrame(index=range(3), 
		columns=['a', 'b', 'c'])
  • 1
  • 2
  • 3

在这个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)
  • 1
  • 2

这两种方式的添加结果都是一样的,if index == 0:

abc
0123
1NaNNaNNaN
2NaNNaNNaN

但是,我们需要将添加的数据数量控制好,不然就会出现这样的error:

ValueError: could not broadcast input array from shape (2,) into shape (3,)
  • 1

除此之外,我们不仅可以向其中添加int型数据,还可以添加些奇奇怪怪的数据,比如:

aa.loc[0] = (0, (0.5,), (0.5,))
  • 1

或者更复杂一点:

aa.loc[0] = ((0, (0.5,), (0.5,)), (0, 0.5), 0)
  • 1

这个时候,这些数据就被存储到dataframe中了,但是会有一个warning,用来提醒你,如果想要存奇奇怪怪多种多样的数据类型,就需要在创建dataframe的时候,添加属性dtype=object,这样就不会有warning啦!
如果是按照列添加呢?
直接使用loc函数试试:

aa.loc['a'] = 0
  • 1

然后,我发现,aa增加了一个新的行,index=‘a’,看来这个方法是不可行的,憨憨的我想起了这个方法类似于二维数组,所以,用一个新的方法试试:

aa.loc[:, 'a'] = 0
  • 1

成功啦!他将column=‘a’的一列数据都变成了0。同时呢,我也发现,可以使用loc函数更改aa中每一个位置的值,只要你知道它的index和column。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/153073
推荐阅读
相关标签
  

闽ICP备14008679号