Python Pandas 创建 DataFrame 的四种方法

Pandas 是 Python 的一个数据分析包,最初由 AQR Capital Management 于2008年4月开发,并于2009年底开源出来,目前由专注于 Python 数据包开发的 PyData 开发团队继续开发和维护,属于 PyData 项目的一部分。

Pandas 最初被作为金融数据分析工具而开发出来,因此,pandas为时间序列分析提供了很好的支持。

Pandas 的名称来自于面板数据(panel data)和 Python数据分析(data analysis)。

在深度学习中 Pandas 的使用也非常多!



一、创建一个空的数据框架

import pandas as pd
df = pd.DataFrame()
print(df)

运行结果:

Empty DataFrame
Columns: []
Index: []

二、从列表进行创建

  1. 一维列表
data = [1,2,3,4,5]
df = pd.DataFrame(data) # 将列表数据转化为 一列
print(df)

运行结果:

   0
0  1
1  2
2  3
3  4
4  5
  1. 二维列表
data = [['Alex',10],['Bob',12],['Clarke',13]]
df = pd.DataFrame(data,columns=['Name','Age']) # 将第一维度数据转为为行,第二维度数据转化为列,即 3 行 2 列,并设置列标签
print(df)

运行结果:

     Name  Age
0    Alex   10
1     Bob   12
2  Clarke   13
  1. 设置数据格式
data = [['Alex',10],['Bob',12],['Clarke',13]]
df = pd.DataFrame(data,columns=['Name','Age'],dtype=float) # 将数字元素 自动转化为 浮点数
print(df)

运行结果:

     Name   Age
0    Alex  10.0
1     Bob  12.0
2  Clarke  13.0

三、从 ndarrays / Lists 的 字典创建

  1. 默认的 index
data = {'Name':['Tom', 'Jack', 'Steve', 'Ricky'],'Age':[28,34,29,42]} # 两组列元素,并且个数需要相同
df = pd.DataFrame(data) # 这里默认的 index 就是 range(n),n 是列表的长度
print(df)

运行结果:

    Name  Age
0    Tom   28
1   Jack   34
2  Steve   29
3  Ricky   42
  1. 指定 index
data = {'Name':['Tom', 'Jack', 'Steve', 'Ricky'],'Age':[28,34,29,42]}
df = pd.DataFrame(data, index=['rank1','rank2','rank3','rank4']) # 这里设定了 index 个数要和列表长度一致
print(df)

运行结果:

        Name  Age
rank1    Tom   28
rank2   Jack   34
rank3  Steve   29
rank4  Ricky   42

四、从 字典组成的列表 创建

  1. 自动添加 NaN
data = [{'a': 1, 'b': 2},{'a': 5, 'b': 10, 'c': 20}] # 列表对应的是第一维,即行,字典为同一行不同列元素
df = pd.DataFrame(data) # 第 1 行 3 列没有元素,自动添加 NaN (Not a Number)
print(df)

运行结果:

   a   b     c
0  1   2   NaN
1  5  10  20.0
  1. 取特定的表头下的列元素
data = [{'a': 1, 'b': 2},{'a': 5, 'b': 10, 'c': 20}]

#With two column indices, values same as dictionary keys
df1 = pd.DataFrame(data, index=['first', 'second'], columns=['a', 'b']) # 指定表头都存在于 data,只取部分

#With two column indices with one index with other name
df2 = pd.DataFrame(data, index=['first', 'second'], columns=['a', 'b1']) # 指定表头中 b1 不存在,添加 b1 列,元素 NaN
print(df1)
print(df2)

运行结果:

        a   b
first   1   2
second  5  10
        a  b1
first   1 NaN
second  5 NaN

五、从 Series 组成的字典 创建

d = {'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']),
   'two' : pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])}
# index 与序列长度相投
# 字典不同的 key 代表一个列的表头,pd.Series 作为 value 作为该列的元素
df = pd.DataFrame(d)
print(df)

运行结果:

   one  two
a  1.0    1
b  2.0    2
c  3.0    3
d  NaN    4

猜你喜欢

转载自blog.csdn.net/qq_42067550/article/details/106148799
今日推荐