Danfo.js专题 - Series对象
Danfo.js专题 - Series对象
jcLee95 的 CSDN 博客
邮箱 :291148484@163.com
CSDN 主页:https://blog.csdn.net/qq_28550263?spm=1001.2101.3001.5343
本文地址:https://blog.csdn.net/qq_28550263/article/details/115716277
编辑中【等待添加实战案例】
博文地址:https://blog.csdn.net/qq_28550263/article/details/115716277
提醒博主更新: 291148484@163.com
Series
Series是带有轴标签的一维数组(包括时间序列)。
Series(data, {columns: [ Array ], dtypes: [ Array ], index: [Array]}) [source]
3.1 属性
属性 | 描述 |
---|---|
Series.index
|
Series的索引(轴标签)。 |
Series.tensor
|
支持这个数列或索引的Tensorflow tensor 数据。 |
Series.dtype
|
返回基础数据的dtype对象。 |
Series.shape
|
返回基础数据形状的元组。 |
Series.ndim
|
根据定义1的基础数据。 |
Series.size
|
返回基础数据中的元素数量。 |
详解:
Series.index
Series的索引(轴标签)。
const dfd = require("danfojs-node")
let data1 = [30.21091, 40.190901, 3.564, 5.0212]
let sf1 = new dfd.Series(data1)
console.log(sf1.index)
Output
[ 0, 1, 2, 3 ]
Series.tensor
Series.tensor 支持这个数列或索引的Tensorflow tensor 数据。
const dfd = require("danfojs-node")
let data1 = [30.21091, 40.190901, 3.564, 5.0212]
let sf1 = new dfd.Series(data1)
console.log(sf1.values)
Output
const dfd = require("danfojs-node")
let data1 = [30.21091, 40.190901, 3.564, 5.0212]
let sf1 = new dfd.Series(data1)
console.log(sf1.values)
Series.dtype
返回基础数据的dtype对象。
const dfd = require("danfojs-node")let data1 = [30.21091, 40.190901, 3.564, 5.0212]
let sf1 = new dfd.Series(data1)console.log(sf1.values)
Output
[ 30.21091, 40.190901, 3.564, 5.0212 ]
Series.shape
返回基础数据形状的元组。
const dfd = require("danfojs-node")let data1 = [30.21091, 40.190901, 3.564, 5.0212]
let sf1 = new dfd.Series(data1)console.log(sf1.shape)
Output
[ 4, 1 ]
Series.ndim
根据定义1的基础数据。
const dfd = require("danfojs-node")let data1 = [30.21091, 40.190901, 3.564, 5.0212]
let sf1 = new dfd.Series(data1)console.log(sf1.ndim)
Output
1
Series.size
返回基础数据中的元素数量。
const dfd = require("danfojs-node")let data1 = [30.21091, 40.190901, 3.564, 5.0212]
let sf1 = new dfd.Series(data1)console.log(sf1.ndim)
Output
4
3.2 转换
方法 | 描述 |
---|---|
Series.astype
|
将系列对象转换为指定的数据类型。 |
Series.copy
|
复制此对象的索引和数据。 |
详解:
Series.astype
将系列对象转换为指定的数据类型。
【eg1】将float dtype列转换为int
const dfd = require("danfojs-node")let data = { "A": [-20.1, 30, 47.3, -20] ,"B": [34, -4, 5, 6],"C": [20.1, -20.23, 30.3, 40.11],"D": ["a", "b", "c", "c"] }let df = new dfd.DataFrame(data)
df.print()
df.ctypes.print()let df_new = df.astype({column: "A", dtype: "int32"})
df_new.print()df.ctypes.print()
Output
//before casting
╔═══╤═══════════════════╤═══════════════════╤═══════════════════╤═══════════════════╗
║ │ A │ B │ C │ D ║
╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢
║ 0 │ -20.1 │ 34 │ 20.1 │ a ║
╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢
║ 1 │ 30 │ -4 │ -20.23 │ b ║
╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢
║ 2 │ 47.3 │ 5 │ 30.3 │ c ║
╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢
║ 3 │ -20 │ 6 │ 40.11 │ c ║
╚═══╧═══════════════════╧═══════════════════╧═══════════════════╧═══════════════════╝╔═══╤══════════════════════╗
║ │ 0 ║
╟───┼──────────────────────╢
║ A │ float32 ║
╟───┼──────────────────────╢
║ B │ int32 ║
╟───┼──────────────────────╢
║ C │ float32 ║
╟───┼──────────────────────╢
║ D │ string ║
╚═══╧══════════════════════╝//after casting╔═══╤═══════════════════╤═══════════════════╤═══════════════════╤═══════════════════╗
║ │ A │ B │ C │ D ║
╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢
║ 0 │ -20 │ 34 │ 20.1 │ a ║
╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢
║ 1 │ 30 │ -4 │ -20.23 │ b ║
╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢
║ 2 │ 47 │ 5 │ 30.3 │ c ║
╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢
║ 3 │ -20 │ 6 │ 40.11 │ c ║
╚═══╧═══════════════════╧═══════════════════╧═══════════════════╧═══════════════════╝╔═══╤══════════════════════╗
║ │ 0 ║
╟───┼──────────────────────╢
║ A │ int32 ║
╟───┼──────────────────────╢
║ B │ int32 ║
╟───┼──────────────────────╢
║ C │ float32 ║
╟───┼──────────────────────╢
║ D │ string ║
╚═══╧══════════════════════╝
【eg2】将string列转换为int
const dfd = require("danfojs-node")let data = { "A": [-20.1, 30, 47.3, -20] ,"B": [34, -4, 5, 6],"C": [20.1, -20.23, 30.3, 40.11],"D": ["a", "b", "c", "c"] }let df = new dfd.DataFrame(data)
let df_new = df.astype({column: "D", dtype: "int32"})
df_new.print()df.ctypes.print()
Output
╔═══╤═══════════════════╤═══════════════════╤═══════════════════╤═══════════════════╗
║ │ A │ B │ C │ D ║
╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢
║ 0 │ -20.1 │ 34 │ 20.1 │ 20 ║
╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢
║ 1 │ 30 │ -4 │ -20.23 │ 13 ║
╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢
║ 2 │ 47.3 │ 5 │ 30.3 │ 45 ║
╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢
║ 3 │ -20 │ 6 │ 40.11 │ 90 ║
╚═══╧═══════════════════╧═══════════════════╧═══════════════════╧═══════════════════╝╔═══╤══════════════════════╗
║ │ 0 ║
╟───┼──────────────────────╢
║ A │ float32 ║
╟───┼──────────────────────╢
║ B │ int32 ║
╟───┼──────────────────────╢
║ C │ float32 ║
╟───┼──────────────────────╢
║ D │ int32 ║
╚═══╧══════════════════════╝
Series.copy
复制此对象的索引和数据。
const dfd = require("danfojs-node")let data1 = [30.21091, 40.190901, 3.564, 5.0212]
let sf1 = new dfd.Series(data1)
let sf2 = sf1.copy()sf2.print()
Output
╔═══╤══════════════════════╗
║ │ 0 ║
╟───┼──────────────────────╢
║ 0 │ 30.21091 ║
╟───┼──────────────────────╢
║ 1 │ 40.190901 ║
╟───┼──────────────────────╢
║ 2 │ 3.564 ║
╟───┼──────────────────────╢
║ 3 │ 5.0212 ║
╚═══╧══════════════════════╝
3.3 索引、迭代
方法 | 描述 |
---|---|
Series.loc
|
通过标签或布尔数组访问一组行和列。 |
Series.iloc
|
完全基于整数位置的索引,用于按位置选择。 |
详解:
Series.loc
通过标签或布尔数组访问一组行和列。
const dfd = require("danfojs-node")
let data = { "Name": ["Apples", "Mango", "Banana", "Pear"],"Count": [21, 5, 30, 10],"Price": [200, 300, 40, 250] }
let df = new dfd.DataFrame(data, {index: ["a", "b", "c", "d"]})
df.print()
let sub_df = df.loc({rows: ["a", "c"]})
sub_df.print()
Output
╔═══╤═══════════════════╤═══════════════════╤═══════════════════╗
║ │ Name │ Count │ Price ║
╟───┼───────────────────┼───────────────────┼───────────────────╢
║ a │ Apples │ 21 │ 200 ║
╟───┼───────────────────┼───────────────────┼───────────────────╢
║ b │ Mango │ 5 │ 300 ║
╟───┼───────────────────┼───────────────────┼───────────────────╢
║ c │ Banana │ 30 │ 40 ║
╟───┼───────────────────┼───────────────────┼───────────────────╢
║ d │ Pear │ 10 │ 250 ║
╚═══╧═══════════════════╧═══════════════════╧═══════════════════╝
Shape: (2,3)
╔═══╤═══════════════════╤═══════════════════╤═══════════════════╗
║ │ Name │ Count │ Price ║
╟───┼───────────────────┼───────────────────┼───────────────────╢
║ a │ Apples │ 21 │ 200 ║
╟───┼───────────────────┼───────────────────┼───────────────────╢
║ c │ Banana │ 30 │ 40 ║
╚═══╧═══════════════════╧═══════════════════╧═══════════════════╝
Series.iloc
- 完全基于整数位置的索引,用于按位置选择。
const dfd = require("danfojs-node")
let data = { "Name": ["Apples", "Mango", "Banana", "Pear"],"Count": [21, 5, 30, 10],"Price": [200, 300, 40, 250] }
let df = new dfd.DataFrame(data, {index: ["a", "b", "c", "d"]})
df.print()
let sub_df = df.loc({columns: ["Count", "Price"]})
sub_df.print()
Output
╔═══╤═══════════════════╤═══════════════════╤═══════════════════╗
║ │ Name │ Count │ Price ║
╟───┼───────────────────┼───────────────────┼───────────────────╢
║ a │ Apples │ 21 │ 200 ║
╟───┼───────────────────┼───────────────────┼───────────────────╢
║ b │ Mango │ 5 │ 300 ║
╟───┼───────────────────┼───────────────────┼───────────────────╢
║ c │ Banana │ 30 │ 40 ║
╟───┼───────────────────┼───────────────────┼───────────────────╢
║ d │ Pear │ 10 │ 250 ║
╚═══╧═══════════════════╧═══════════════════╧═══════════════════╝
//after slicing
╔═══╤═══════════════════╤═══════════════════╗
║ │ Count │ Price ║
╟───┼───────────────────┼───────────────────╢
║ a │ 21 │ 200 ║
╟───┼───────────────────┼───────────────────╢
║ b │ 5 │ 300 ║
╟───┼───────────────────┼───────────────────╢
║ c │ 30 │ 40 ║
╟───┼───────────────────┼───────────────────╢
║ d │ 10 │ 250 ║
╚═══╧═══════════════════╧═══════════════════╝
- 通过指定的标签索引两个轴
const dfd = require("danfojs-node")
let data = { "Name": ["Apples", "Mango", "Banana", "Pear"],"Count": [21, 5, 30, 10],"Price": [200, 300, 40, 250] }
let df = new dfd.DataFrame(data, { index: ["a", "b", "c", "d"] })
df.print()
let sub_df = df.loc({ rows: ["c","d"], columns: ["Name", "Price"] })
sub_df.print()
Output
╔═══╤═══════════════════╤═══════════════════╤═══════════════════╗
║ │ Name │ Count │ Price ║
╟───┼───────────────────┼───────────────────┼───────────────────╢
║ a │ Apples │ 21 │ 200 ║
╟───┼───────────────────┼───────────────────┼───────────────────╢
║ b │ Mango │ 5 │ 300 ║
╟───┼───────────────────┼───────────────────┼───────────────────╢
║ c │ Banana │ 30 │ 40 ║
╟───┼───────────────────┼───────────────────┼───────────────────╢
║ d │ Pear │ 10 │ 250 ║
╚═══╧═══════════════════╧═══════════════════╧═══════════════════╝
//after slicing
╔═══╤═══════════════════╤═══════════════════╗
║ │ Name │ Price ║
╟───┼───────────────────┼───────────────────╢
║ c │ Banana │ 40 ║
╟───┼───────────────────┼───────────────────╢
║ d │ Pear │ 250 ║
╚═══╧═══════════════════╧═══════════════════╝
- 通过索引对特定行进行索引
const dfd = require("danfojs-node")
// const tf = require("@tensorflow/tfjs-node")let s = new dfd.Series([12, 34, 2.2, 2, 30, 30, 2.1, 7])
s.iloc([0,5]).print()
Output
╔═══╤══════════════════════╗
║ │ 0 ║
╟───┼──────────────────────╢
║ 0 │ 12 ║
╟───┼──────────────────────╢
║ 5 │ 30 ║
╚═══╧══════════════════════╝
- 按行切片索引
iloc函数还接受[开始:结束]形式的字符串片段,例如“[1: 4]”。这将返回索引位置1和3之间的所有值。
const dfd = require("danfojs-node")let s = new dfd.Series([12, 34, 2.2, 2, 30, 30, 2.1, 7])
s.iloc(["0:5"]).print()
Output
╔═══╤══════════════════════╗
║ │ 0 ║
╟───┼──────────────────────╢
║ 0 │ 12 ║
╟───┼──────────────────────╢
║ 1 │ 34 ║
╟───┼──────────────────────╢
║ 2 │ 2.2 ║
╟───┼──────────────────────╢
║ 3 │ 2 ║
╟───┼──────────────────────╢
║ 4 │ 30 ║
╚═══╧══════════════════════╝
通过在切片中指定起始索引,将返回该索引之后的所有值。
const dfd = require("danfojs-node")let s = new dfd.Series([12, 34, 2.2, 2, 30, 30, 2.1, 7])
s.iloc(["5:"]).print()
Output
╔═══╤══════════════════════╗
║ │ 0 ║
╟───┼──────────────────────╢
║ 5 │ 30 ║
╟───┼──────────────────────╢
║ 6 │ 2.1 ║
╟───┼──────────────────────╢
║ 7 │ 7 ║
╚═══╧══════════════════════╝
3.4 二进制操作函数
方法 | 描述 |
---|---|
Series.add
|
按元素返回系列和其他的加法(二元运算符加法)。 |
Series.sub
|
数列和其他元素的返回减法(二元运算符sub)。 |
Series.mul
|
按元素返回系列和其他的乘法(二元运算符mul)。 |
Series.div
|
返回数列和其他元素的浮点除法(二元运算符truediv)。 |
Series.mod
|
按元素返回系列和其他的模(二进制运算符模)。 |
Series.pow
|
返回级数和其他元素指数幂(二元运算符幂)。 |
Series.round
|
将数列中的每个值四舍五入到给定的小数位数。 |
Series.lt
|
按元素返回小于系列和其他(二元运算符lt)。 |
Series.gt
|
按元素返回大于系列和其他(二元运算符gt)。 |
Series.le
|
按元素返回小于或等于系列和其他的(二元运算符le)。 |
Series.ge
|
按元素返回大于或等于系列和其他的(二元运算符ge)。 |
Series.ne
|
返回不等于系列和其他元素(二元运算符ne)。 |
Series.eq
|
按元素返回等于系列和其他(二元运算符eq)。 |
Series.dot
|
计算数列和其他列之间的点积。 |
详解:
Series.add
从另一Series的值中减去
const dfd = require("danfojs-node")let data1 = [30, 40, 3, 5]
let data2 = [1, 2, 3, 4]
let sf1 = new dfd.Series(data1)
let sf2 = new dfd.Series(data2)
sf1.add(sf2).print()
Output
╔═══╤══════════════════════╗
║ │ 0 ║
╟───┼──────────────────────╢
║ 0 │ 31 ║
╟───┼──────────────────────╢
║ 1 │ 42 ║
╟───┼──────────────────────╢
║ 2 │ 6 ║
╟───┼──────────────────────╢
║ 3 │ 9 ║
╚═══╧══════════════════════╝
从数值中减去
const dfd = require("danfojs-node")let data1 = [1, 2, 3, 4, 5]
let sf1 = new dfd.Series(data1)sf1.add(2).print()
Output
╔═══╤══════════════════════╗
║ │ 0 ║
╟───┼──────────────────────╢
║ 0 │ 3 ║
╟───┼──────────────────────╢
║ 1 │ 4 ║
╟───┼──────────────────────╢
║ 2 │ 5 ║
╟───┼──────────────────────╢
║ 3 │ 6 ║
╟───┼──────────────────────╢
║ 4 │ 7 ║
╚═══╧══════════════════════╝
Series.sub
从另一series的值中减去
const dfd = require("danfojs-node")let data1 = [30, 40, 3, 5]
let data2 = [1, 2, 3, 4]
let sf1 = new dfd.Series(data1)
let sf2 = new dfd.Series(data2)
sf1.sub(sf2).print()
Output
╔═══╤══════════════════════╗
║ │ 0 ║
╟───┼──────────────────────╢
║ 0 │ 29 ║
╟───┼──────────────────────╢
║ 1 │ 38 ║
╟───┼──────────────────────╢
║ 2 │ 0 ║
╟───┼──────────────────────╢
║ 3 │ 1 ║
╚═══╧══════════════════════╝
从数值中减去
const dfd = require("danfojs-node")let data1 = [1, 2, 3, 4, 5]
let sf1 = new dfd.Series(data1)sf1.sub(2).print()
Output
╔═══╤══════════════════════╗
║ │ 0 ║
╟───┼──────────────────────╢
║ 0 │ -1 ║
╟───┼──────────────────────╢
║ 1 │ 0 ║
╟───┼──────────────────────╢
║ 2 │ 1 ║
╟───┼──────────────────────╢
║ 3 │ 2 ║
╟───┼──────────────────────╢
║ 4 │ 3 ║
╚═══╧══════════════════════╝
Series.mul
与另一系列值相乘
const dfd = require("danfojs-node")let data1 = [30, 40, 3, 5]
let data2 = [1, 2, 3, 4]
let sf1 = new dfd.Series(data1)
let sf2 = new dfd.Series(data2)
sf1.mul(sf2).print()
Output
╔═══╤══════════════════════╗
║ │ 0 ║
╟───┼──────────────────────╢
║ 0 │ 30 ║
╟───┼──────────────────────╢
║ 1 │ 80 ║
╟───┼──────────────────────╢
║ 2 │ 9 ║
╟───┼──────────────────────╢
║ 3 │ 20 ║
╚═══╧══════════════════════╝
与一个值相乘
const dfd = require("danfojs-node")let data1 = [1, 2, 3, 4, 5]
let sf1 = new dfd.Series(data1)sf1.mul(2).print()
Output
╔═══╤══════════════════════╗
║ │ 0 ║
╟───┼──────────────────────╢
║ 0 │ 2 ║
╟───┼──────────────────────╢
║ 1 │ 4 ║
╟───┼──────────────────────╢
║ 2 │ 6 ║
╟───┼──────────────────────╢
║ 3 │ 8 ║
╟───┼──────────────────────╢
║ 4 │ 10 ║
╚═══╧══════════════════════╝
Series.div
用另一series的值除
const dfd = require("danfojs-node")let data1 = [30, 40, 3, 5]
let data2 = [1, 2, 3, 4]
let sf1 = new dfd.Series(data1)
let sf2 = new dfd.Series(data2)
sf1.div(sf2).print()
Output
╔═══╤══════════════════════╗
║ │ 0 ║
╟───┼──────────────────────╢
║ 0 │ 30 ║
╟───┼──────────────────────╢
║ 1 │ 20 ║
╟───┼──────────────────────╢
║ 2 │ 1 ║
╟───┼──────────────────────╢
║ 3 │ 1.25 ║
╚═══╧══════════════════════╝
用一个值除
const dfd = require("danfojs-node")let data1 = [1, 2, 3, 4, 5]
let sf1 = new dfd.Series(data1)sf1.div(2).print()
Output
╔═══╤══════════════════════╗
║ │ 0 ║
╟───┼──────────────────────╢
║ 0 │ 0.5 ║
╟───┼──────────────────────╢
║ 1 │ 1 ║
╟───┼──────────────────────╢
║ 2 │ 1.5 ║
╟───┼──────────────────────╢
║ 3 │ 2 ║
╟───┼──────────────────────╢
║ 4 │ 2.5 ║
╚═══╧══════════════════════╝
Series.mod
另一series值的模
const dfd = require("danfojs-node")let data1 = [2, 30, 4, 5]
let data2 = [1.1, 2.2, 3.3, 2.4]
let sf1 = new dfd.Series(data1)
let sf2 = new dfd.Series(data2)
sf1.mod(sf2).print()
Output
╔═══╤══════════════════════╗
║ │ 0 ║
╟───┼──────────────────────╢
║ 0 │ 0.8999999761581421 ║
╟───┼──────────────────────╢
║ 1 │ 1.3999993801116943 ║
╟───┼──────────────────────╢
║ 2 │ 0.7000000476837158 ║
╟───┼──────────────────────╢
║ 3 │ 0.19999980926513672 ║
╚═══╧══════════════════════╝
以值为模
const dfd = require("danfojs-node")let data1 = [1, 2, 3, 4, 5]
let sf1 = new dfd.Series(data1)sf1.mod(2).print()
Output
╔═══╤══════════════════════╗
║ │ 0 ║
╟───┼──────────────────────╢
║ 0 │ 1 ║
╟───┼──────────────────────╢
║ 1 │ 0 ║
╟───┼──────────────────────╢
║ 2 │ 1 ║
╟───┼──────────────────────╢
║ 3 │ 0 ║
╟───┼──────────────────────╢
║ 4 │ 1 ║
╚═══╧══════════════════════╝
Series.pow
另一series数值的指数幂
const dfd = require("danfojs-node")let data1 = [2, 3, 4, 5]
let data2 = [1, 2, 3, 0]
let sf1 = new dfd.Series(data1)
let sf2 = new dfd.Series(data2)
sf1.pow(sf2).print()
Output
╔═══╤══════════════════════╗
║ │ 0 ║
╟───┼──────────────────────╢
║ 0 │ 2 ║
╟───┼──────────────────────╢
║ 1 │ 9 ║
╟───┼──────────────────────╢
║ 2 │ 64 ║
╟───┼──────────────────────╢
║ 3 │ 1 ║
╚═══╧══════════════════════╝
有值的指数值
const dfd = require("danfojs-node")let data1 = [1, 2, 3, 4, 5]
let sf1 = new dfd.Series(data1)sf1.pow(2).print()
Output
╔═══╤══════════════════════╗
║ │ 0 ║
╟───┼──────────────────────╢
║ 0 │ 1 ║
╟───┼──────────────────────╢
║ 1 │ 4 ║
╟───┼──────────────────────╢
║ 2 │ 9 ║
╟───┼──────────────────────╢
║ 3 │ 16 ║
╟───┼──────────────────────╢
║ 4 │ 25 ║
╚═══╧══════════════════════╝
Series.round
const dfd = require("danfojs-node")let data1 = [30.21091, 40.190901, 3.564, 5.0212]
let sf1 = new dfd.Series(data1)sf1.round(2).print()
Output
╔═══╤══════════════════════╗
║ │ 0 ║
╟───┼──────────────────────╢
║ 0 │ 30.21 ║
╟───┼──────────────────────╢
║ 1 │ 40.19 ║
╟───┼──────────────────────╢
║ 2 │ 3.56 ║
╟───┼──────────────────────╢
║ 3 │ 5.02 ║
╚═══╧══════════════════════╝
Series.lt
检查series 中的所有值是否都小于一个值
const dfd = require("danfojs-node")let data1 = [10, 45, 56, 25, 23, 20, 10]
let sf1 = new dfd.Series(data1)sf1.lt(20).print()
Output
╔═══╤══════════════════════╗
║ │ 0 ║
╟───┼──────────────────────╢
║ 0 │ false ║
╟───┼──────────────────────╢
║ 1 │ true ║
╟───┼──────────────────────╢
║ 2 │ true ║
╟───┼──────────────────────╢
║ 3 │ true ║
╟───┼──────────────────────╢
║ 4 │ true ║
╟───┼──────────────────────╢
║ 5 │ false ║
╟───┼──────────────────────╢
║ 6 │ false ║
╚═══╧══════════════════════╝
const dfd = require("danfojs-node")let data1 = [10, 45, 56, 25, 23, 20, 10]
let data2 = [10, 450, 56, 5, 25, 2, 0]
let sf1 = new dfd.Series(data1)
let sf2 = new dfd.Series(data2)sf1.lt(sf2).print()
Output
╔═══╤══════════════════════╗
║ │ 0 ║
╟───┼──────────────────────╢
║ 0 │ false ║
╟───┼──────────────────────╢
║ 1 │ true ║
╟───┼──────────────────────╢
║ 2 │ false ║
╟───┼──────────────────────╢
║ 3 │ false ║
╟───┼──────────────────────╢
║ 4 │ true ║
╟───┼──────────────────────╢
║ 5 │ false ║
╟───┼──────────────────────╢
║ 6 │ false ║
╚═══╧══════════════════════╝
检查一个series中的所有值是否小于另一个series中的值。
const dfd = require("danfojs-node")let data1 = [10, 45, 56, 25, 23, 20, 10]
let data2 = [10, 450, 56, 5, 25, 2, 0]
let sf1 = new dfd.Series(data1)
let sf2 = new dfd.Series(data2)sf1.lt(sf2).print()
Output
╔═══╤══════════════════════╗
║ │ 0 ║
╟───┼──────────────────────╢
║ 0 │ false ║
╟───┼──────────────────────╢
║ 1 │ true ║
╟───┼──────────────────────╢
║ 2 │ false ║
╟───┼──────────────────────╢
║ 3 │ false ║
╟───┼──────────────────────╢
║ 4 │ true ║
╟───┼──────────────────────╢
║ 5 │ false ║
╟───┼──────────────────────╢
║ 6 │ false ║
╚═══╧══════════════════════╝
Series.gt
检查series 中的所有值是否都大于一个值
const dfd = require("danfojs-node")let data1 = [10, 45, 56, 25, 23, 20, 10]
let sf1 = new dfd.Series(data1)sf1.gt(20).print()
Output
╔═══╤══════════════════════╗
║ │ 0 ║
╟───┼──────────────────────╢
║ 0 │ false ║
╟───┼──────────────────────╢
║ 1 │ true ║
╟───┼──────────────────────╢
║ 2 │ true ║
╟───┼──────────────────────╢
║ 3 │ true ║
╟───┼──────────────────────╢
║ 4 │ true ║
╟───┼──────────────────────╢
║ 5 │ false ║
╟───┼──────────────────────╢
║ 6 │ false ║
╚═══╧══════════════════════╝
检查一个series 中的所有值是否大于另一个series 中的值。
const dfd = require("danfojs-node")let data1 = [10, 45, 56, 25, 23, 20, 10]
let data2 = [10, 450, 56, 5, 25, 2, 0]
let sf1 = new dfd.Series(data1)
let sf2 = new dfd.Series(data2)sf1.gt(sf2).print()
Output
╔═══╤══════════════════════╗
║ │ 0 ║
╟───┼──────────────────────╢
║ 0 │ false ║
╟───┼──────────────────────╢
║ 1 │ false ║
╟───┼──────────────────────╢
║ 2 │ false ║
╟───┼──────────────────────╢
║ 3 │ true ║
╟───┼──────────────────────╢
║ 4 │ false ║
╟───┼──────────────────────╢
║ 5 │ true ║
╟───┼──────────────────────╢
║ 6 │ true ║
╚═══╧══════════════════════╝
Series.le
检查series中的所有值是否都小于或等于一个值
const dfd = require("danfojs-node")
let data1 = [10, 45, 56, 25, 23, 20, 10]
let sf1 = new dfd.Series(data1)
sf1.le(20).print()
Output
╔═══╤══════════════════════╗
║ │ 0 ║
╟───┼──────────────────────╢
║ 0 │ true ║
╟───┼──────────────────────╢
║ 1 │ false ║
╟───┼──────────────────────╢
║ 2 │ false ║
╟───┼──────────────────────╢
║ 3 │ false ║
╟───┼──────────────────────╢
║ 4 │ false ║
╟───┼──────────────────────╢
║ 5 │ true ║
╟───┼──────────────────────╢
║ 6 │ true ║
╚═══╧══════════════════════╝
检查一个series中的所有值是否小于或等于另一个series中的值。
const dfd = require("danfojs-node")
let data1 = [10, 45, 56, 25, 23, 20, 10]
let data2 = [10, 450, 56, 5, 25, 2, 0]
let sf1 = new dfd.Series(data1)
let sf2 = new dfd.Series(data2)
sf1.le(sf2).print()
Output
╔═══╤══════════════════════╗
║ │ 0 ║
╟───┼──────────────────────╢
║ 0 │ true ║
╟───┼──────────────────────╢
║ 1 │ true ║
╟───┼──────────────────────╢
║ 2 │ true ║
╟───┼──────────────────────╢
║ 3 │ false ║
╟───┼──────────────────────╢
║ 4 │ true ║
╟───┼──────────────────────╢
║ 5 │ false ║
╟───┼──────────────────────╢
║ 6 │ false ║
╚═══╧══════════════════════╝
Series.ge
将一个序列中的所有值与另一个series中的值进行比较
const dfd = require("danfojs-node")let data1 = [10, 45, 56, 25, 23, 20, 10]
let data2 = [10, 450, 56, 5, 25, 2, 0]
let sf1 = new dfd.Series(data1)
let sf2 = new dfd.Series(data2)sf1.ge(sf2).print()
Output
╔═══╤══════════════════════╗
║ │ 0 ║
╟───┼──────────────────────╢
║ 0 │ true ║
╟───┼──────────────────────╢
║ 1 │ false ║
╟───┼──────────────────────╢
║ 2 │ true ║
╟───┼──────────────────────╢
║ 3 │ true ║
╟───┼──────────────────────╢
║ 4 │ false ║
╟───┼──────────────────────╢
║ 5 │ true ║
╟───┼──────────────────────╢
║ 6 │ true ║
╚═══╧══════════════════════╝
检查Series 中的所有值是否都大于或等于一个值。
const dfd = require("danfojs-node")let data1 = [10, 45, 56, 25, 23, 20, 10]
let sf1 = new dfd.Series(data1)sf1.ge(20).print()
Output
╔═══╤══════════════════════╗
║ │ 0 ║
╟───┼──────────────────────╢
║ 0 │ false ║
╟───┼──────────────────────╢
║ 1 │ true ║
╟───┼──────────────────────╢
║ 2 │ true ║
╟───┼──────────────────────╢
║ 3 │ true ║
╟───┼──────────────────────╢
║ 4 │ true ║
╟───┼──────────────────────╢
║ 5 │ true ║
╟───┼──────────────────────╢
║ 6 │ false ║
╚═══╧══════════════════════╝
Series.ne
将一个series 中的所有值与另一个series 中的值进行比较
const dfd = require("danfojs-node")
let data1 = [10, 45, 56, 25, 23, 20, 10]
let data2 = [10, 450, 56, 5, 25, 2, 0]
let sf1 = new dfd.Series(data1)
let sf2 = new dfd.Series(data2)
sf1.ne(sf2).print()
Output
╔═══╤══════════════════════╗
║ │ 0 ║
╟───┼──────────────────────╢
║ 0 │ false ║
╟───┼──────────────────────╢
║ 1 │ true ║
╟───┼──────────────────────╢
║ 2 │ false ║
╟───┼──────────────────────╢
║ 3 │ true ║
╟───┼──────────────────────╢
║ 4 │ true ║
╟───┼──────────────────────╢
║ 5 │ true ║
╟───┼──────────────────────╢
║ 6 │ true ║
╚═══╧══════════════════════╝
将Series 中的所有值与一个值进行比较。
const dfd = require("danfojs-node")
let data1 = [10, 45, 56, 25, 23, 20, 10]
let sf1 = new dfd.Series(data1)
sf1.ne(10).print()
Output
╔═══╤══════════════════════╗
║ │ 0 ║
╟───┼──────────────────────╢
║ 0 │ false ║
╟───┼──────────────────────╢
║ 1 │ true ║
╟───┼──────────────────────╢
║ 2 │ true ║
╟───┼──────────────────────╢
║ 3 │ true ║
╟───┼──────────────────────╢
║ 4 │ true ║
╟───┼──────────────────────╢
║ 5 │ true ║
╟───┼──────────────────────╢
║ 6 │ false ║
╚═══╧══════════════════════╝
Series.eq
将一个series中的所有值与另一个series进行比较
const dfd = require("danfojs-node")let data1 = [10, 45, 56, 25, 23, 20, 10]
let data2 = [10, 450, 56, 5, 25, 2, 0]
let sf1 = new dfd.Series(data1)
let sf2 = new dfd.Series(data2)sf1.eq(sf2).print()
Output
╔═══╤══════════════════════╗
║ │ 0 ║
╟───┼──────────────────────╢
║ 0 │ true ║
╟───┼──────────────────────╢
║ 1 │ false ║
╟───┼──────────────────────╢
║ 2 │ true ║
╟───┼──────────────────────╢
║ 3 │ false ║
╟───┼──────────────────────╢
║ 4 │ false ║
╟───┼──────────────────────╢
║ 5 │ false ║
╟───┼──────────────────────╢
║ 6 │ false ║
╚═══╧══════════════════════╝
检查所有值是否等于一个值
const dfd = require("danfojs-node")let data1 = [10, 45, 56, 25, 23, 20, 10]
let sf1 = new dfd.Series(data1)sf1.eq(10).print()
Output
╔═══╤══════════════════════╗
║ │ 0 ║
╟───┼──────────────────────╢
║ 0 │ true ║
╟───┼──────────────────────╢
║ 1 │ false ║
╟───┼──────────────────────╢
║ 2 │ false ║
╟───┼──────────────────────╢
║ 3 │ false ║
╟───┼──────────────────────╢
║ 4 │ false ║
╟───┼──────────────────────╢
║ 5 │ false ║
╟───┼──────────────────────╢
║ 6 │ true ║
╚═══╧══════════════════════╝
Series.dot
Output
Output
3.5 Function application & GroupBy
方法 | 描述 |
---|---|
Series.apply
|
对数列的值调用函数。 |
Series.map
|
根据输入的对应关系映射系列的值。 |
详解:
3.6 Computations / descriptive stats
方法 | 描述 |
---|---|
Series.abs
|
返回包含每个元素的绝对数值的Series 。 |
Series.corr
|
计算与其他Series的相关性,不包括缺失值。 |
Series.count
|
返回系列中非NaN观测值的数目。 |
Series.cummax
|
返回DataFrame或Series轴上的累积最大值。 |
Series.cummin
|
返回DataFrame或Series轴上的累积最小值。 |
Series.cumprod
|
返回DataFrame或Series轴上的累计乘积。 |
Series.cumsum
|
返回DataFrame或Series轴上的累计总和。 |
Series.describe
|
生成描述性统计数据。 |
Series.max
|
返回所请求轴的最大值。 |
Series.mean
|
返回所请求轴的平均值。 |
Series.median
|
返回所请求轴的值的中间值。 |
Series.min
|
返回所请求轴的最小值。 |
Series.mode
|
返回数据集的模式。 |
Series.std
|
返回要求轴上的样本标准偏差。 |
Series.sum
|
返回所请求轴的值的总和。 |
Series.var
|
返回指定轴上的无偏方差。 |
Series.unique
|
返回Series对象中的唯一值. |
Series.nunique
|
返回对象中唯一元素的数量。 |
Series.value_counts
|
返回包含唯一值计数的序列。 |
详解:
3.7 重新索引(Reindexing) / 选择/ 标签操作
方法 | 描述 |
---|---|
Series.drop_duplicates
|
移除重复值后返回序列。 |
Series.head
|
返回前n行。 |
Series.reset_index
|
在重置索引的情况下生成新的DataFrame或Series。 |
Series.sample
|
从对象的轴返回项目的随机样本。 |
Series.tail
|
返回最后n行。 |
3.8 数据缺失处理
方法 | 描述 |
---|---|
Series.dropna
|
返回一个新系列,并删除缺失的值。 |
Series.fillna
|
使用指定的方法填充 NaN 值。 |
Series.isna
|
检测缺失值。 |
Series.replace
|
用值替换to_replace中给出的值。 |
详解:
3.9 再成形(reshape), 排序
方法 | 描述 |
---|---|
Series.argsort
|
返回将对序列值进行排序的整数索引。 |
Series.argmin
|
返回序列中最小值的整数位置。 |
Series.argmax
|
返回序列中最大值的整数位置。 |
Series.sort_values
|
按值排序。 |
详解:
3.10 访问器
Danfo在各种访问器下提供特定于数据类型的方法。这些是Series
内单独的命名空间(https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.html#pandas.Series),仅适用于特定的数据类型。
数据类型 | 访问器 |
---|---|
Datetime | dt |
String | str |
Datetimelike 属性
Series.dt
可用于以datetime形式访问系列的值,并返回几个属性。这些可以通过以下方式访问如 Series.dt.<property>
.
Datetime 方法
方法 | 描述 |
---|---|
Series.dt.year
|
datetime中的年份。 |
Series.dt.month
|
月份,例如 January=1, December=12。 |
Series.dt.day
|
datetime中的日。 |
Series.dt.hour
|
datetime中的时。 |
Series.dt.minute
|
datetime中的分钟。 |
Series.dt.second
|
datetime中的秒 |
Series.dt.weekdays
|
一周中的某天,使用 (周一)Monday=0, (周日)Sunday=6. |
Series.dt.month_name
|
返回指定区域设置的日期时间索引的月份名称 |
详解:
字符串处理
Series.str
可用于以字符串形式访问系列的值,并对其应用几种方法。这些可以像 Series.str.<function/property>
一样访问。
方法 | 描述 |
---|---|
Series.str.capitalize
|
将每个字符串的第一个字符大写 |
Series.str.toUpperCase
|
将所有字符转换为大写 |
Series.str.toLowerCase
|
将所有字符转换为小写 |
Series.str.charAt
|
返回指定索引(位置)处的字符。 |
Series.str.concat
|
连接两个或多个字符串/数组。 |
Series.str.startsWith
|
检查字符串是否以指定的字符开头。 |
Series.str.endsWith
|
检查字符串是否以指定的字符结尾 |
Series.str.includes
|
检查字符串是否包含指定的字符串/字符。 |
Series.str.indexOf
|
返回字符串中第一个找到的指定值的位置。 |
Series.str.lastIndexOf
|
返回字符串中指定值最后一次出现的位置。 |
Series.str.repeat
|
返回一个新字符串,其中包含现有字符串的指定数量的副本。 |
Series.str.search
|
在字符串中搜索指定的值或正则表达式,并返回匹配的位置。 |
Series.str.slice
|
提取字符串的一部分并返回一个新字符串。 |
Series.str.split
|
Splits a string into an array of substrings. |
Series.str.substr
|
从字符串中提取字符,从指定的开始位置开始,通过指定的字符数。 |
Series.str.substring
|
从两个指定索引之间的字符串中提取字符。 |
Series.str.len
|
计算每个字符串中的字符数。 |
Series.str.trim
|
删除字符串两端的空白。 |
Series.str.join
|
将字符串连接到指定值。 |
Series.str.replace
|
替换序列/索引中模式/正则表达式的每次出现。 |
详解:
3.11 绘图
Series.plot
是一个可调用的方法,也是一个命名空间属性,用于Series.plot.<kind>
形式的特定绘图方法。
方法 | 描述 |
---|---|
Series.plot.bar
|
竖线图 |
Series.plot.box
|
制作DataFrame一列的方框图 |
Series.plot.violin
|
制作DataFrame一列的小提琴图 |
Series.plot.hist
|
为DataFrame的一列炯之一个矩形图 |
Series.plot.scatter
|
使用高斯核生成核密度估计图 |
Series.plot.line
|
使用Series或DataFrame绘制线图 |
Series.plot.pie
|
生成一个饼图 |
Timeseries Plots
|
时间序列图 |
Table
|
在Div中将Series 显示为交互式表格 |
详解:
3.12 序列化/ IO / 转换
方法 | 描述 |
---|---|
Series.to_csv
|
Write object to a comma-separated values (csv) file. |
Series.to_json
|
Convert the object to a JSON string. |
详解:
Danfo.js专题 - Series对象相关推荐
- Danfo.js专题 - Danfo.js与Dnotebook简介与入门
Danfo.js与Dnotebook -- pandas.jupyter的JavaScript版本 [前言]:谷歌公司不仅推出了tensorflow的JavaScript版本tensorflow.js ...
- Danfo.js专题 - 附:Dnotebook(Danfo Notebook)单机资源与汉化文档
本文是汉化版的Danfo notebook对应修改的demo,与原版demo内容相比,请求csv的路径发生了变化,且部分文字汉化了.该汉化版本在博主发布的资源中可以找到. 由于G内网无法访问该文档,故 ...
- js中的new file_深受 Pandas 启发的 JavaScript 开源库 — Danfo.js 现已推出!
特邀博文 / 独立研究员 Rising Odegua 与来自 Data Science Nigeria 的 Stephen Oni Danfo.js 是个 JavaScript 开源库,提供了高性能. ...
- excel html modify,在Excel 2010中修改Series对象上的Z-index(Modify Z-index on Series object in Excel 2010)...
在Excel 2010中修改Series对象上的Z-index(Modify Z-index on Series object in Excel 2010) 我正在使用excel 2010. 我有一个 ...
- pandas使用argmax函数返回给定series对象中最大值(max、maximum)的行索引实战
pandas使用argmax函数返回给定series对象中最大值(max.maximum)的行索引实战 目录 pandas使用argmax函数返回给定series对象中最大值的行索引实战
- JS获取当前对象大小以及屏幕分辨率等...
<!DOCTYPE html> <html> <head><meta charset="utf-8"/><meta name= ...
- JS的事件对象和事件冒泡
2019独角兽企业重金招聘Python工程师标准>>> 1.事件对象 js的事件对象中保存了当前被触发事件的一些相关的属性信息,如事件源.事件发生时的鼠标位置.事件按键等. 事件对象 ...
- JS中集合对象(Array、Map、Set)及类数组对象的使用与对比
JS中集合对象(Array.Map.Set)及类数组对象的使用与对比 在使用js编程的时候,常常会用到集合对象,集合对象其实是一种泛型,在js中没有明确的规定其内元素的类型,但在强类型语言譬如Java ...
- Pandas中兼并数组和字典功能的Series 2013-03-24 11:24:00 分类: Python/Ruby In [2]: # 这段代码用于并排显示多个Series对象 from it
Pandas中兼并数组和字典功能的Series 2013-03-24 11:24:00 分类: Python/Ruby In [2]: # 这段代码用于并排显示多个Series对象 from iter ...
最新文章
- knn的python代码_Python代码实现KNN算法
- 商业周刊评出08年增长最快的美国科技公司
- Qt的简单介绍和安装
- Python的正则表达式笔记
- 黑马商城项目级联选择占满全屏解决方案
- Python 利用pymupdf将pdf转换为图片并拆分,后通过PIL合并生成一张图片
- 华为鸿蒙商标被驳回复审:易造成混淆
- 引用和指针自增的不同
- UVALive 6909 Kevin's Problem 数学排列组合
- 试述计算机控制系统的大致组成,试述工业计算机控制系统的组成及应用
- 东北育才10天大总结
- 图解Python机器学习pdf 中日双语 第1页
- 《穿越计算机的迷雾》读书笔记六
- Abaqus中多层介质设置初始应力场(补充介绍)
- 关于微信卡券网页跳转链接能力的下线
- 圣诞老人python代码_用Python画圣诞老人的N种方法
- cognex扫码枪识别内容直接_康耐视cognex DataMan8600系列-手持终端-条码扫描枪-PDA-扫描模块-条码打印机-苏州奥维尔...
- JAVA 中的修饰符的适用范围
- Debezium系列之:永久保存history topic中的数据
- Steam自建游戏服务器配置
热门文章
- 程序员面试金典——5.1二进制插入
- 剑指offer——面试题39:二叉树的深度
- Caffe中merge卷积和bn层的原理
- 部署和操作 Enterprise Library 加密应用程序块
- linux执行jmeter脚本解决响应数据为空
- LR11中web_save_timestamp_param
- 二叉树的遍历 《算法导论》10.4-1~10.4-3 10.4-5
- JDK 和 tomcat 安装 配置
- 产品原型设计5:移动App原型设计神器 - POP(Prototyping on Paper)
- Google 加入反 IE6 联盟:IE6 真的能被消灭吗?