前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Pandas-3. DataFrame

Pandas-3. DataFrame

作者头像
悠扬前奏
发布2019-05-28 14:44:39
1.2K0
发布2019-05-28 14:44:39
举报
文章被收录于专栏:悠扬前奏的博客

1. 构造函数

代码语言:javascript
复制
pandas.DataFrame( data, index, columns, dtype, copy)

参数含义:

参数

描述

data

数据,接受的形式有:ndarray,Series, map,lists,dict,constant,DataFrame

index

行标签,默认为np.arange(n)

columns

列标签,默认为np.arange(n)

dtype

每列的数据类型

copy

用于复制数据,默认值为False

2.创建DataFrame

以下代码基于Anaconda的Jupyter编辑器,Python3.7。

2.1 创建一个空的DataFrame

代码语言:javascript
复制
print(pd.DataFrame())

结果:

代码语言:javascript
复制
Empty DataFrame
Columns: []
Index: []

2.2 从列表创建DataFrame

代码语言:javascript
复制
print(pd.DataFrame([1,2,3,4,5]))

结果:

代码语言:javascript
复制
   0
0  1
1  2
2  3
3  4
4  5

多维数组也可以

代码语言:javascript
复制
print(pd.DataFrame([["A", 10],["B",11],["C",12]], columns=["key", "value"]))

结果:

代码语言:javascript
复制
  key  value
0   A     10
1   B     11
2   C     12

使用dtype

代码语言:javascript
复制
print(pd.DataFrame([["A", 10],["B",11],["C",12]], columns=["key", "value"], dtype=float))

结果

代码语言:javascript
复制
  key  value
0   A   10.0
1   B   11.0
2   C   12.0

2.3 从ndarrays/Lists的字典来创建DataFrame

  • ndarray必须拥有相同的长度。
  • 如果传递了索引,索引的长度应该等于数组的长度
  • 如果没有索引,默认索引为range(n) 默认
代码语言:javascript
复制
data = {"key":["A", "B", "C"], "value":[1,2,3]}
print(pd.DataFrame(data))

结果:

代码语言:javascript
复制
  key  value
0   A      1
1   B      2
2   C      3

加上索引

代码语言:javascript
复制
data = {"key":["A", "B", "C"], "value":[1,2,3]}
print(pd.DataFrame(data, index=["index1", "index2", "index3"])) 

结果

代码语言:javascript
复制
       key  value
index1   A      1
index2   B      2
index3   C      3

2.4 从字典列表

字典组成的列表可以创建DataFrame,字典键默认为列名。

  • 如果字典键不统一,列是它们的并集,并用NaN填充缺失的值。
  • 可以指定行索引和列索引,但是如果指定了字典键以外的列索引,会被置为NaN
代码语言:javascript
复制
print(pd.DataFrame(data, index=['index1', 'index2']))
print(pd.DataFrame(data, index=['index1', 'index2'], columns=['a', 'b']))
print(pd.DataFrame(data, index=['index1', 'index2'], columns=['a', 'c']))
print(pd.DataFrame(data, index=['index1', 'index2'], columns=['a', 'd']))

结果

代码语言:javascript
复制
        a  b    c
index1  1  2  NaN
index2  5  6  7.0
        a  b
index1  1  2
index2  5  6
        a    c
index1  1  NaN
index2  5  7.0
        a   d
index1  1 NaN
index2  5 NaN

2.5 从Series的字典来创建DataFrame

Series组成的字典可以作为参数来创建DataFrame。其索引是所有Series的索引的并集。 例子:

代码语言:javascript
复制
d = {'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']),
      'two' : pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])}
print(pd.DataFrame(d))

结果:

代码语言:javascript
复制
   one  two
a  1.0    1
b  2.0    2
c  3.0    3
d  NaN    4

3. DataFrame的数据处理

3.1列的处理

以2.5中创建的DataFrame为例: 读取一列

代码语言:javascript
复制
df = pd.DataFrame(d)
print(df["one"])

结果:

代码语言:javascript
复制
a    1.0
b    2.0
c    3.0
d    NaN
Name: one, dtype: float64

添加一列

代码语言:javascript
复制
df["three"] = pd.Series([10,20,30], index=['a', 'b','c'])
print(df)

结果:

代码语言:javascript
复制
   one  two  three
a  1.0    1   10.0
b  2.0    2   20.0
c  3.0    3   30.0
d  NaN    4    NaN

删除一列

代码语言:javascript
复制
del df["three"]
print(df)

结果:

代码语言:javascript
复制
   one  two
a  1.0    1
b  2.0    2
c  3.0    3
d  NaN    4

3.2 行的处理

标签选择 可以将行标签传递给loc来选择行:

代码语言:javascript
复制
print(df.loc["b"])

结果

代码语言:javascript
复制
one    2.0
two    2.0
Name: b, dtype: float64

按整数位置选择 将证书位置传递给iloc()函数选择行:

代码语言:javascript
复制
print(df.iloc[2])

结果:

代码语言:javascript
复制
one    3.0
two    3.0
Name: c, dtype: float64

删除行 drop()函数可以来删除行(或者列): 以下函数等价:

代码语言:javascript
复制
df.drop(['b', 'c'], axis=1)
df.drop(columns=['b', 'c'])

以下函数等价:

代码语言:javascript
复制
df.drop([0, 1])
df.drop(index=[0, 1])

** 切片** :运算符可以选择多行:

代码语言:javascript
复制
print(df[2:4])

输出:

代码语言:javascript
复制
   one  two
c  3.0    3
d  NaN    4

新建行 使用append()函数可以新建行。附加到结尾:

代码语言:javascript
复制
df2 = pd.DataFrame([[5, 6], [7, 8]], index=['a','b'], columns = ['one','two'])
print(df.append(df2))
本文参与?腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019.03.23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体同步曝光计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 构造函数
  • 2.创建DataFrame
    • 2.1 创建一个空的DataFrame
      • 2.2 从列表创建DataFrame
        • 2.3 从ndarrays/Lists的字典来创建DataFrame
          • 2.4 从字典列表
            • 2.5 从Series的字典来创建DataFrame
            • 3. DataFrame的数据处理
              • 3.1列的处理
                • 3.2 行的处理
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
                http://www.vxiaotou.com