文章目录
创建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'>