pandas基础 Series与Dataframe与numpy对二进制文件输入输出

  • Post category:Python

关于pandas基础、Series和Dataframe以及numpy对二进制文件输入输出的完整攻略,我们可以结合以下几个部分来讲解:

一、pandas基础

在学习pandas之前,我们需要先了解一些pandas基础知识,例如pandas的数据结构,pandas的常用操作等等。在这里,我们简单介绍一下pandas的数据结构:

  1. Series:一维的数据结构,类似于一维数组,每个元素都有相应的标签(label);
  2. DataFrame:二维的数据结构,由多个Series组成,类似于excel表格,每列的数据类型可以不同,可以被看做是由Series组成的字典;
  3. Panel:三维的数据结构,由多个DataFrame组成,一般情况下很少使用。

有了这些基础知识,我们就可以开始学习pandas的常用操作了!

二、Series与DataFrame

1. Series

创建Series对象的方法:

import pandas as pd

# 从列表中创建Series对象
s1 = pd.Series([1, 2, 3, 4, 5])
print(s1)

# 从字典中创建Series对象
s2 = pd.Series({'a': 1, 'b': 2, 'c': 3})
print(s2)

Series对象的常用属性:

  • index: 返回Series中的标签索引;
  • values: 返回Series中的值;
  • dtype: 返回Series中的数据类型;
  • shape: 返回Series的形状。

2. DataFrame

创建DataFrame对象的方法:

import pandas as pd

# 从列表中创建DataFrame对象
df1 = pd.DataFrame([[1, 'a'], [2, 'b'], [3, 'c']], columns=['id', 'name'])
print(df1)

# 从字典中创建DataFrame对象
df2 = pd.DataFrame({'id': [1, 2, 3], 'name': ['a', 'b', 'c']})
print(df2)

DataFrame对象的常用属性:

  • index:返回DataFrame的行索引;
  • columns:返回DataFrame的列索引;
  • values:返回DataFrame的所有数据,数据的类型是二维numpy数组。

三、numpy对二进制文件输入输出

在numpy中,可以使用numpy.save(filename, array)将数组保存到二进制文件中,使用numpy.load(filename)将文件中的数据读取到数组中。具体操作可以参考下面的示例:

import numpy as np

a = np.array([[1, 2, 3], [4, 5, 6]])
# 将数组a保存到文件a.npy中
np.save('a.npy', a)

# 从文件a.npy中读取数据
b = np.load('a.npy')
print(b)

四、示例应用

下面我们举两个例子,说明如何利用pandas和numpy对二进制文件进行处理。

1. 读取二进制文件

假如我们有一个二进制文件a.npy,保存了一个二位数组,我们可以使用numpy.load()函数将数据读取到内存中,再使用pandas将其转换成DataFrame对象。

import pandas as pd
import numpy as np

# 从文件a.npy中读取数据
data = np.load('a.npy')
# 将二维numpy数组转换成DataFrame对象
df = pd.DataFrame(data, columns=['a', 'b', 'c'])
print(df)

2. 将数据保存到二进制文件中

我们可以先使用pandas生成DataFrame对象,然后将其转换成numpy数组,最后使用numpy.save()函数将数据保存到文件中。

import pandas as pd
import numpy as np

# 生成DataFrame对象
df = pd.DataFrame({'a': [1, 2, 3], 'b': [4, 5, 6]})

# 将DataFrame对象转换成numpy数组
data = df.values

# 将数组保存到文件中
np.save('data.npy', data)

以上就是pandas基础、Series与DataFrame与numpy对二进制文件输入输出的完整攻略,希望对你有所帮助!