python的ndarray、series和dataframe类型转化

本文介绍了如何在Python中使用numpy创建ndarray,然后将其转化为pandas的Series和DataFrame。同样,也展示了如何从Series和DataFrame转换回ndarray。主要涉及的方法有.values属性和pd.DataFrame()函数。此外,还涵盖了设置索引和列标签的操作。
摘要由CSDN通过智能技术生成


在这里插入图片描述

创建ndarray类型数据

  • 使用numpy库中的np.array创建
## 创建ndarray类型数据
import numpy as np
data = [["2017-10-18", 10.53, 10.69, 10.70, 10.51, 871365.0],
        ["2017-10-19", 10.64, 10.63, 10.72, 10.57, 722764.0],
        ["2017-10-20", 10.59, 10.48, 10.59, 10.41, 461808.0],
        ["2017-10-23", 10.39, 10.19, 10.40, 10.15, 1074465.0]]
arr_1 = np.array(data)
print(arr_1)
print(type(arr_1))#<class 'numpy.ndarray'>
  • 结果
    在这里插入图片描述

使用list创建series

  • 使用pandas库构建series, index构造series的行索引
import numpy as np
import pandas as pd
data = [["2017-10-18", 10.53, 10.69, 10.70, 10.51, 871365.0],
        ["2017-10-19", 10.64, 10.63, 10.72, 10.57, 722764.0],
        ["2017-10-20", 10.59, 10.48, 10.59, 10.41, 461808.0],
        ["2017-10-23", 10.39, 10.19, 10.40, 10.15, 1074465.0]]

series = pd.Series(data, index=['a', 'b', 'c', 'd'])
print(series)
print(type(series))#<class 'pandas.core.series.Series'>
  • 结果在这里插入图片描述

series和ndarray转化

series转换为ndarray

  • 使用变量名.values实现转化,实现 series转换为ndarray
  • 使用变量名.as_matrix()会报错AttributeError: ‘Series’ object has no attribute ‘as_matrix’
arr = series.values
print(arr)
print(type(arr))#<class 'numpy.ndarray'>
  • 结果
    在这里插入图片描述

ndarray转换为series

  • 方法1:map结合lamdba实现转化
import numpy as np
import pandas as pd
data = [["2017-10-18", 10.53, 10.69, 10.70, 10.51, 871365.0],
        ["2017-10-19", 10.64, 10.63, 10.72, 10.57, 722764.0],
        ["2017-10-20", 10.59, 10.48, 10.59, 10.41, 461808.0],
        ["2017-10-23", 10.39, 10.19, 10.40, 10.15, 1074465.0]]
data_list = map(lambda x: x[0], data)#不加上x[0]则是二维数组转化的series,加上x[0]表示一列的series
ser = pd.Series(data_list)
print(ser)
print(type(ser))#<class 'pandas.core.series.Series'>
  • 方法2:data.tolist()实现转化
import numpy as np
import pandas as pd
data = [["2017-10-18", 10.53, 10.69, 10.70, 10.51, 871365.0],
        ["2017-10-19", 10.64, 10.63, 10.72, 10.57, 722764.0],
        ["2017-10-20", 10.59, 10.48, 10.59, 10.41, 461808.0],
        ["2017-10-23", 10.39, 10.19, 10.40, 10.15, 1074465.0]]
arr_1 = np.array(data)
Arr_1 = pd.Series(arr_1[0].tolist())
print(Arr_1)
print(type(Arr_1))#<class 'pandas.core.series.Series'>
  • 结果
    在这里插入图片描述
import numpy as np
import pandas as pd
data = [["2017-10-18", 10.53, 10.69, 10.70, 10.51, 871365.0],
        ["2017-10-19", 10.64, 10.63, 10.72, 10.57, 722764.0],
        ["2017-10-20", 10.59, 10.48, 10.59, 10.41, 461808.0],
        ["2017-10-23", 10.39, 10.19, 10.40, 10.15, 1074465.0]]
arr_1 = np.array(data)
Arr_1 = pd.Series(arr_1.tolist())
print(Arr_1)
print(type(Arr_1))#<class 'pandas.core.series.Series'>


data_list = map(lambda x: x, data)#不加上x[0]则是二维数组转化的series,加上x[0]表示一列的series
ser = pd.Series(data_list)
print(ser)
print(type(ser))#<class 'pandas.core.series.Series'>
  • 结果
    在这里插入图片描述

使用list创建dataframe,pd.DataFrame()将ndarray转换为dataframe

  • 使用pandas库构建dataframe,index和columns构造dataframe的行列索引
import pandas as pd
data = [["2017-10-18", 10.53, 10.69, 10.70, 10.51, 871365.0],
        ["2017-10-19", 10.64, 10.63, 10.72, 10.57, 722764.0],
        ["2017-10-20", 10.59, 10.48, 10.59, 10.41, 461808.0],
        ["2017-10-23", 10.39, 10.19, 10.40, 10.15, 1074465.0]]

df = pd.DataFrame(data, index=["2017-10-18", "2017-10-19", "2017-10-20", "2017-10-23"],
                  columns=['date',"open", "close", "high", "low", "volume"])

print(df)
print(type(df))
  • 结果
    在这里插入图片描述

dataframe和ndarray之间的转化

  • 使用变量名.values实现转化
arr_1 = df.values
print(arr_1)
print(type(arr_1))#<class 'numpy.ndarray'>
  • 结果
    在这里插入图片描述

dataframe和series之间的转化

  • dataframe取子列得到series
series_open = df["open"]
print(series_open)
print(type(series_open))#<class 'pandas.core.series.Series'>
  • 结果
    在这里插入图片描述

  • 完整代码

##
import numpy as np
import pandas as pd
data = [["2017-10-18", 10.53, 10.69, 10.70, 10.51, 871365.0],
        ["2017-10-19", 10.64, 10.63, 10.72, 10.57, 722764.0],
        ["2017-10-20", 10.59, 10.48, 10.59, 10.41, 461808.0],
        ["2017-10-23", 10.39, 10.19, 10.40, 10.15, 1074465.0]]

series = pd.Series(data, index=['a', 'b', 'c', 'd'])
print(series)
print(type(series))#<class 'pandas.core.series.Series'>
#arr = series.as_matrix():报错AttributeError: 'Series' object has no attribute 'as_matrix'
#series和ndarray的转化
arr = series.values
print(arr)
print(type(arr))#<class 'numpy.ndarray'>


## dataframe
import pandas as pd
data = [["2017-10-18", 10.53, 10.69, 10.70, 10.51, 871365.0],
        ["2017-10-19", 10.64, 10.63, 10.72, 10.57, 722764.0],
        ["2017-10-20", 10.59, 10.48, 10.59, 10.41, 461808.0],
        ["2017-10-23", 10.39, 10.19, 10.40, 10.15, 1074465.0]]

df = pd.DataFrame(data, index=["2017-10-18", "2017-10-19", "2017-10-20", "2017-10-23"],
                  columns=['date',"open", "close", "high", "low", "volume"])

print(df)
print(type(df))
#arr = series.as_matrix():报错AttributeError: 'Series' object has no attribute 'as_matrix'
#dataframe和ndarray的转化
arr_1 = df.values
print(arr_1)
print(type(arr_1))#<class 'numpy.ndarray'>




## dataframe和series之间的转化:dataframe取子列得到series
series_open = df["open"]
print(series_open)
print(type(series_open))#<class 'pandas.core.series.Series'>


## 创建ndarray类型数据
import numpy as np
data = [["2017-10-18", 10.53, 10.69, 10.70, 10.51, 871365.0],
        ["2017-10-19", 10.64, 10.63, 10.72, 10.57, 722764.0],
        ["2017-10-20", 10.59, 10.48, 10.59, 10.41, 461808.0],
        ["2017-10-23", 10.39, 10.19, 10.40, 10.15, 1074465.0]]
arr_1 = np.array(data)
print(arr_1)
print(type(arr_1))#<class 'numpy.ndarray'>
### 回答1: 将ndarray转化dataframe可以使用pandas库中的DataFrame函数。具体步骤如下: 1. 导入pandas库 ```python import pandas as pd ``` 2. 创建ndarray ```python import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6]]) ``` 3. 将ndarray转化dataframe ```python df = pd.DataFrame(arr) ``` 4. 查看转化后的dataframe ```python print(df) ``` 输出结果为: ``` 0 1 2 0 1 2 3 1 4 5 6 ``` ### 回答2: 我们可以使用Pandas库中的`DataFrame`函数将一个`ndarray`对象转换为`DataFrame`对象。 `ndarray`是NumPy库中的一个多维数组对象,而`DataFrame`是Pandas库中用于数据处理的一种数据结构,类似于Excel中的表格。将`ndarray`转换为`DataFrame`可以方便地对数据进行分析和处理。 要进行转换,我们首先需要导入两个库: ``` import numpy as np import pandas as pd ``` 然后,创建一个`ndarray`对象,作为转换的源数据: ``` arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) ``` 接下来,我们使用`DataFrame`函数将`ndarray`转换成`DataFrame`对象: ``` df = pd.DataFrame(arr) ``` 现在,`df`就是转换后的`DataFrame`对象,我们可以对其进行各种操作,比如查看数据、筛选数据、进行计算等。例如,我们可以使用`head`函数查看前几行的数据: ``` print(df.head()) ``` 输出的结果为: ``` 0 1 2 0 1 2 3 1 4 5 6 2 7 8 9 ``` 以上就是将`ndarray`转换为`DataFrame`的方法。这样,我们可以灵活地使用Pandas库中提供的各种函数和方法,对数据进行处理和分析。 ### 回答3: 将ndarray转化dataframe是一种将数据从数组形式转换为表格形式的操作。可以通过pandas库中的DataFrame函数来实现。 首先,需要导入pandas库:import pandas as pd 接着,可以使用DataFrame函数将ndarray转化dataframe。可以指定参数data为ndarray,并且可以通过columns参数来指定列名。例如: data = np.array([[1, 2, 3], [4, 5, 6]]) df = pd.DataFrame(data, columns=["列1", "列2", "列3"]) 这样就成功将ndarray转化为了dataframe转化后的dataframe会以表格的形式展示数据,同时每一列会有对应的列名。 如果ndarray中的数据不是数值类型而是其他类型,例如字符串,也可以进行转换。转化代码如下: data = np.array([["a", "b", "c"], ["d", "e", "f"]]) df = pd.DataFrame(data, columns=["列1", "列2", "列3"]) 转化后的dataframe中会保留原始数据类型,并以表格形式展示。 总而言之,将ndarray转化dataframe可以通过pandas库中的DataFrame函数来实现,通过指定data参数为ndarray数据以及columns参数来指定列名。这样就可以简单而快速地将数组形式的数据转换为表格形式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值