pandas DateFrame类

构造方法

pandas.DataFrame(data=None, index=None, columns=None, dtype=None, copy=None)
方法说明

构造方法返回一个DataFrame对象。

参数data为输入的数据,可以是numpy数组、字典、元组、列表等类型,参数index表示行索引,列表长度与数组的行数相等,参数columns表示列索引,参数dtype表示数据的类型,可以为python数据类型或numpy数据类型。

方法使用

1、通过numpy数组创建DataFrame对象

>>> a = np.reshape(np.arange(12), (3, 4))
>>> a
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])
>>> df = pd.DataFrame(a)
>>> df
   0  1   2   3
0  0  1   2   3
1  4  5   6   7
2  8  9  10  11
>>> df1 = pd.DataFrame(a, index=['a', 'b', 'c'])
>>> df1
   0  1   2   3
a  0  1   2   3
b  4  5   6   7
c  8  9  10  11
>>> df2 = pd.DataFrame(a, columns=['a', 'b', 'c', 'd'])
>>> df2
   a  b   c   d
0  0  1   2   3
1  4  5   6   7
2  8  9  10  11
>>> df3 = pd.DataFrame(a, dtype=np.float32)
>>> df3
     0    1     2     3
0  0.0  1.0   2.0   3.0
1  4.0  5.0   6.0   7.0
2  8.0  9.0  10.0  11.0

2、通过字典创建DataFrame对象

>>> data = {"names":["Joe", "John", "Lili"],
	"ages":[12, 24, 18],
	"sexes":["man", "man", "woman"]}
>>> df = pd.DataFrame(data)
>>> df
  names  ages  sexes
0   Joe    12    man
1  John    24    man
2  Lili    18  woman

3、通过列表、元组创建DataFrame对象

>>> data = [[2, 3, 4],
	[3, 4, 5],
	[4, 5, 6]]
>>> df = pd.DataFrame(data)
>>> df
   0  1  2
0  2  3  4
1  3  4  5
2  4  5  6
>>> data = [(2, 3, 4),
	(3, 4, 5),
	(4, 5, 6)]
>>> df = pd.DataFrame(data)
>>> df
   0  1  2
0  2  3  4
1  3  4  5
2  4  5  6

对象方法

方法说明

DataFrame对象主要包括一些查看数据的方法、索引、切片以及对数据的增加、修改、求均值、最大最小值、求和、转置、排序等操作。

对象属性/方法描述
values返回一个numpy数组
dtypes返回数据的类型
index返回行索引
columns返回列索引
shape返回DataFrame的形状,一个元组
size返回DataFrame的大小,一个整数
head([n])返回前n行数据,默认为5
tail([n])返回最后n行数据,默认为5
mean([axis, skipna, level, numeric_only])返回指定列或全部数据的均值
sum([axis, skipna, level, numeric_only, …])返回指定列或者全部数据的和
max([axis, skipna, level, numeric_only])返回指定列或者全部数据的最大值
min(([axis, skipna, level, numeric_only])返回指定列或者全部数据的最小值
sort_values(by[, axis, ascending, inplace, …])根据指定行列将数据进行排序
方法使用

1、索引、切片

>>> data = np.reshape(np.arange(24), (6, 4))
>>> data
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11],
       [12, 13, 14, 15],
       [16, 17, 18, 19],
       [20, 21, 22, 23]])
>>> df = pd.DataFrame(data)
>>> df
    0   1   2   3
0   0   1   2   3
1   4   5   6   7
2   8   9  10  11
3  12  13  14  15
4  16  17  18  19
5  20  21  22  23
# 索引
# 行索引
>>> df.iloc[0]
0    0
1    1
2    2
3    3
Name: 0, dtype: int32
# 列索引
>>> df.iloc[:,0]
0     0
1     4
2     8
3    12
4    16
5    20
Name: 0, dtype: int32
# 切片
# 行切片
>>> df.iloc[:2]
   0  1  2  3
0  0  1  2  3
1  4  5  6  7
# 列切片
>>> df.iloc[:, :2]
    0   1
0   0   1
1   4   5
2   8   9
3  12  13
4  16  17
5  20  21
# 行列切片
>>> df.iloc[:2, :2]
   0  1
0  0  1
1  4  5

2、增删改查

>>> data = np.reshape(np.arange(24), (6, 4))
>>> data
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11],
       [12, 13, 14, 15],
       [16, 17, 18, 19],
       [20, 21, 22, 23]])
>>> df = pd.DataFrame(data)
>>> df
    0   1   2   3
0   0   1   2   3
1   4   5   6   7
2   8   9  10  11
3  12  13  14  15
4  16  17  18  19
5  20  21  22  23
# 返回前2行数据
>>> df.head(2)
   0  1  2  3
0  0  1  2  3
1  4  5  6  7
# 返回后2行数据
>>> df.tail(2)
    0   1   2   3
4  16  17  18  19
5  20  21  22  23
# 返回第一列数据
>>> df[0]
0     0
1     4
2     8
3    12
4    16
5    20
Name: 0, dtype: int32
>>> type(df[0])
<class 'pandas.core.series.Series'>
# DataFrame的数据,numpy形式
>>> df.values
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11],
       [12, 13, 14, 15],
       [16, 17, 18, 19],
       [20, 21, 22, 23]])
# DataFrame的行名称
>>> df.index
RangeIndex(start=0, stop=6, step=1)
# DataFrame的列名称
>>> df.columns
RangeIndex(start=0, stop=4, step=1)
# DataFrame的数据类型
>>> df.dtypes
0    int32
1    int32
2    int32
3    int32
dtype: object
# 增加一列数据
>>> column = pd.Series([1, 2, 3, 4, 5, 6])
>>> df[4] = column
>>> df
    0   1   2   3  4
0   0   1   2   3  1
1   4   5   6   7  2
2   8   9  10  11  3
3  12  13  14  15  4
4  16  17  18  19  5
5  20  21  22  23  6
# 每一列的最大值
>>> df.max()
0    20
1    21
2    22
3    23
4     6
dtype: int64
# 每一列的均值
>>> df.mean()
0    10.0
1    11.0
2    12.0
3    13.0
4     3.5
dtype: float64
# 降序排列
>>> df.sort_values(by=0, ascending=False)
    0   1   2   3  4
5  20  21  22  23  6
4  16  17  18  19  5
3  12  13  14  15  4
2   8   9  10  11  3
1   4   5   6   7  2
0   0   1   2   3  1
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不负韶华ღ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值