pandas

package module
v0.6.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 1, 2023 License: Apache-2.0 Imports: 20 Imported by: 32

README

pandas

1. 介绍

python pandas库的golang版本的整合

2. 整合的代码库有:

3. 整合的目的

  • gota 缺少 ExponentialMovingWindow的用法, 从而缺失EWM的后续操作方法
  • WinPooh32的series功能比较全, 缺少DataFrame的衔接
  • 整合最终的目标是对标公式指标类似myTT的实现方法

Documentation

Index

Constants

View Source
const (
	SERIES_TYPE_INVAILD = "unknown" // 未知类型
	SERIES_TYPE_BOOL    = "bool"    // 布尔类型
	SERIES_TYPE_INT     = "int"     // int64
	SERIES_TYPE_FLOAT   = "float"   // float64
	SERIES_TYPE_STRING  = "string"  // string
)

Supported Series Types

View Source
const (
	Nil2Bool         = false // 空指针转int64
	BoolNaN          = false // int64 无效值
	True2Bool        = true  // true转int64
	False2Bool       = false // false 转int64
	StringBad2Bool   = false // 字符串解析int64异常
	StringTrue2Bool  = true  // 字符串true转int64
	StringFalse2Bool = false // 字符串false转int64
)
View Source
const (
	True2Float        float64 = float64(1) // true转float64
	False2Float       float64 = float64(0)
	StringNil2Float   float64 = float64(0) // deprecated: 字符串空指针转float64
	StringBad2Float   float64 = float64(0) // deprecated: 字符串解析float64异常
	StringTrue2Float  float64 = float64(1) // 字符串true转float64
	StringFalse2Float float64 = float64(0) // 字符串false转float64
)
View Source
const (
	Nil2Int         = int64(0) // 空指针转int64
	IntNaN          = int64(0) // int64 无效值
	True2Int        = int64(1) // true转int64
	False2Int       = int64(0) // false 转int64
	StringBad2Int   = int64(0) // 字符串解析int64异常
	StringTrue2Int  = int64(1) // 字符串true转int64
	StringFalse2Int = int64(0) // 字符串false转int64
)
View Source
const (
	StringNaN    = "NaN"   // 字符串NaN
	Nil2String   = "NaN"   // nil指针转string
	True2String  = "true"  // true转string
	False2String = "false" // false转string
)

Variables

View Source
var (
	// IgnoreParseExceptions 忽略解析异常
	IgnoreParseExceptions bool = true
)
View Source
var (
	// Nil2Float nil指针转换float64
	Nil2Float = float64(0)
)

Functions

func AnyToBool

func AnyToBool(v any) bool

AnyToBool any转换bool

func AnyToFloat64

func AnyToFloat64(v any) float64

AnyToFloat64 any转换float64

func AnyToInt64

func AnyToInt64(v any) int64

AnyToInt64 any转换int64

func AnyToString

func AnyToString(v any) string

AnyToString any转string

func DefaultFormatter

func DefaultFormatter(v interface{}) string

DefaultFormatter will return a string representation of the data in a particular row.

func DefaultIsEqualFunc

func DefaultIsEqualFunc(a, b interface{}) bool

DefaultIsEqualFunc is the default comparitor to determine if two values in the series are the same.

func IsEmpty

func IsEmpty(s string) bool

IsEmpty Code to test if string is empty

func IsNaN

func IsNaN(f float64) bool

IsNan float64是否NaN

func Mean

func Mean[T algorithms.Number](x []T) float64

Mean gonum.org/v1/gonum/stat不支持整型, 每次都要转换有点难受啊

func NaN

func NaN() float64

NaN returns an IEEE 754 “not-a-number” value.

func ParseBool

func ParseBool(s string, v any) bool

ParseFloat 字符串转float64 任意组合的nan字符串都会被解析成NaN

func ParseFloat

func ParseFloat(s string, v any) float64

ParseFloat 字符串转float64 任意组合的nan字符串都会被解析成NaN

func ParseInt

func ParseInt(s string, v any) int64

ParseInt 解析int字符串, 尝试解析10进制和16进制

func Repeat

func Repeat[T GenericType](a T, n int) []T

Repeat 重复生成a

func Repeat2

func Repeat2[T GenericType](dst []T, a T, n int) []T

Repeat2 重复生成a

func SetParseExceptions

func SetParseExceptions(enabled bool)

SetParseExceptions 设置处理解析异常的开关

func StringIsNaN

func StringIsNaN(s string) bool

StringIsNaN 判断字符串是否NaN

Types

type AlphaType

type AlphaType int
const (
	// Specify smoothing factor α directly, 0<α≤1.
	AlphaNil AlphaType = iota
	// Specify decay in terms of center of mass, α=1/(1+com), for com ≥ 0.
	AlphaCom
	// Specify decay in terms of span, α=2/(span+1), for span ≥ 1.
	AlphaSpan
	// Specify decay in terms of half-life, α=1−exp(−ln(2)/halflife), for halflife > 0.
	AlphaHalflife
)

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.ewm.html

type DType

type DType = float64

type DataFrame

type DataFrame struct {

	// deprecated: Use Error() instead
	Err error
	// contains filtered or unexported fields
}

DataFrame 以gota的DataFrame的方法为主, 兼顾新流程, 避免单元格元素结构化

func LoadRecords

func LoadRecords(records [][]string, options ...LoadOption) DataFrame

LoadRecords creates a new DataFrame based on the given records.

func LoadStructs

func LoadStructs(i interface{}, options ...LoadOption) DataFrame

LoadStructs creates a new DataFrame from arbitrary struct slices.

LoadStructs will ignore unexported fields inside an struct. Note also that unless otherwise specified the column names will correspond with the name of the field.

You can configure each field with the `dataframe:"name[,type]"` struct tag. If the name on the tag is the empty string `""` the field name will be used instead. If the name is `"-"` the field will be ignored.

Examples:

// field will be ignored
field int

// Field will be ignored
Field int `dataframe:"-"`

// Field will be parsed with column name Field and type int
Field int

// Field will be parsed with column name `field_column` and type int.
Field int `dataframe:"field_column"`

// Field will be parsed with column name `field` and type string.
Field int `dataframe:"field,string"`

// Field will be parsed with column name `Field` and type string.
Field int `dataframe:",string"`

If the struct tags and the given LoadOptions contradict each other, the later will have preference over the former.

func NewDataFrame

func NewDataFrame(se ...Series) DataFrame

NewDataFrame is the generic DataFrame constructor

func ReadCSV

func ReadCSV(in any, options ...LoadOption) DataFrame

ReadCSV reads a CSV file from a io.Reader and builds a DataFrame with the resulting records. 支持文件名和io两种方式读取数据

func (DataFrame) Dims

func (df DataFrame) Dims() (int, int)

Dims retrieves the dimensions of a DataFrame.

func (*DataFrame) Error

func (df *DataFrame) Error() error

Returns error or nil if no error occured

func (DataFrame) Names

func (df DataFrame) Names() []string

Names returns the name of the columns on a DataFrame.

func (DataFrame) Ncol

func (df DataFrame) Ncol() int

Ncol returns the number of columns on a DataFrame.

func (DataFrame) Nrow

func (df DataFrame) Nrow() int

Nrow returns the number of rows on a DataFrame.

func (DataFrame) Records

func (df DataFrame) Records() [][]string

Records return the string record representation of a DataFrame.

func (DataFrame) String

func (df DataFrame) String() (str string)

String implements the Stringer interface for DataFrame

func (DataFrame) Subset

func (df DataFrame) Subset(start, end int) DataFrame

Subset returns a subset of the rows of the original DataFrame based on the Series subsetting indexes.

func (DataFrame) Types

func (df DataFrame) Types() []string

Types returns the types of the columns on a DataFrame.

func (DataFrame) WriteCSV

func (df DataFrame) WriteCSV(out any, options ...WriteOption) error

WriteCSV writes the DataFrame to the given io.Writer as a CSV file. 支持文件名和io两种方式写入数据

type EW

type EW struct {
	Com      float64 // 根据质心指定衰减
	Span     float64 // 根据跨度指定衰减
	Halflife float64 // 根据半衰期指定衰减
	Alpha    float64 // 直接指定的平滑因子α
	Adjust   bool    // 除以期初的衰减调整系数以核算 相对权重的不平衡(将 EWMA 视为移动平均线)
	IgnoreNA bool    // 计算权重时忽略缺失值
}

EW (Factor) 指数加权(EW)计算Alpha 结构属性非0即为有效启动同名算法

type ExponentialMovingWindow

type ExponentialMovingWindow struct {
	// contains filtered or unexported fields
}

ExponentialMovingWindow 加权移动窗口

func (ExponentialMovingWindow) Mean

type GenericType

type GenericType interface {
	~bool | ~int64 | ~float64 | ~string
}

GenericType Series支持的所有类型

type LoadOption

type LoadOption func(*loadOptions)

LoadOption is the type used to configure the load of elements

func DefaultType

func DefaultType(t Type) LoadOption

DefaultType sets the defaultType option for loadOptions.

func DetectTypes

func DetectTypes(b bool) LoadOption

DetectTypes sets the detectTypes option for loadOptions.

func HasHeader

func HasHeader(b bool) LoadOption

HasHeader sets the hasHeader option for loadOptions.

func NaNValues

func NaNValues(nanValues []string) LoadOption

NaNValues sets the nanValues option for loadOptions.

func Names

func Names(names ...string) LoadOption

Names sets the names option for loadOptions.

func WithComments

func WithComments(b rune) LoadOption

WithComments sets the csv comment line detect to remove lines

func WithDelimiter

func WithDelimiter(b rune) LoadOption

WithDelimiter sets the csv delimiter other than ',', for example '\t'

func WithLazyQuotes

func WithLazyQuotes(b bool) LoadOption

WithLazyQuotes sets csv parsing option to LazyQuotes

func WithTypes

func WithTypes(coltypes map[string]Type) LoadOption

WithTypes sets the types option for loadOptions.

type NDFrame

type NDFrame struct {
	// contains filtered or unexported fields
}

NDFrame 这里本意是想做一个父类

func NewNDFrame

func NewNDFrame[E GenericType](name string, rows ...E) *NDFrame

func (*NDFrame) Copy

func (self *NDFrame) Copy() Series

func (*NDFrame) Empty

func (self *NDFrame) Empty() Series

func (*NDFrame) Len

func (self *NDFrame) Len() int

func (*NDFrame) Mean

func (self *NDFrame) Mean() float64

func (*NDFrame) Name

func (self *NDFrame) Name() string

func (*NDFrame) Records

func (self *NDFrame) Records() []string

func (*NDFrame) Rename

func (self *NDFrame) Rename(n string)

func (*NDFrame) Repeat

func (self *NDFrame) Repeat(x any, repeats int) Series

func (*NDFrame) Rolling

func (self *NDFrame) Rolling(window int) RollingWindow

func (*NDFrame) Shift

func (self *NDFrame) Shift(periods int) Series

func (*NDFrame) StdDev

func (self *NDFrame) StdDev() float64

func (*NDFrame) Subset

func (self *NDFrame) Subset(start, end int, opt ...any) Series

func (*NDFrame) Type

func (self *NDFrame) Type() Type

func (*NDFrame) Values

func (self *NDFrame) Values() any

type RollingWindow

type RollingWindow struct {
	// contains filtered or unexported fields
}

RollingWindow is used for rolling window calculations.

func (RollingWindow) Mean

func (r RollingWindow) Mean() (s Series)

Mean returns the rolling mean.

func (RollingWindow) StdDev

func (r RollingWindow) StdDev() (s Series)

StdDev returns the rolling mean.

type Series

type Series interface {
	// Name 取得series名称
	Name() string
	// Rename renames the series.
	Rename(n string)
	// Type returns the type of data the series holds.
	// 返回类型的字符串
	Type() Type
	// NRows 获得行数
	Len() int
	// Values 获得全部数据集
	Values() any
	// Empty returns an empty Series of the same type
	Empty() Series
	// Records returns the elements of a Series as a []string
	Records() []string
	// Copy 复制
	Copy() Series
	// Subset 获取子集
	Subset(start, end int, opt ...any) Series
	// Repeat elements of an array.
	Repeat(x any, repeats int) Series
	// Shift index by desired number of periods with an optional time freq.
	// 使用可选的时间频率按所需的周期数移动索引.
	Shift(periods int) Series
	// Rolling creates new RollingWindow
	Rolling(window int) RollingWindow
	// Mean calculates the average value of a series
	Mean() float64
	// StdDev calculates the standard deviation of a series
	StdDev() float64
}

func GenericSeries

func GenericSeries[T GenericType](name string, values ...T) *Series

泛型方法, 构造序列, 比其它方式对类型的统一性要求更严格

func NewSeries

func NewSeries(t Type, name string, vals ...interface{}) *Series

NewSeries 指定类型创建序列

func Shift

func Shift[T GenericType](s *Series, periods int, cbNan func() T) Series

Shift series切片, 使用可选的时间频率按所需的周期数移动索引

type SeriesBool

type SeriesBool struct {
	NDFrame
	Data []bool
}

func NewSeriesBool

func NewSeriesBool(name string, vals ...interface{}) *SeriesBool

NewSeriesBool creates a new series with the underlying type as bool.

func (*SeriesBool) Copy

func (self *SeriesBool) Copy() Series

func (*SeriesBool) Empty

func (self *SeriesBool) Empty() Series

func (*SeriesBool) Len

func (self *SeriesBool) Len() int

func (*SeriesBool) Mean

func (self *SeriesBool) Mean() float64

func (*SeriesBool) Name

func (self *SeriesBool) Name() string

func (*SeriesBool) Records

func (self *SeriesBool) Records() []string

func (*SeriesBool) Rename

func (self *SeriesBool) Rename(n string)

func (*SeriesBool) Repeat

func (self *SeriesBool) Repeat(x any, repeats int) Series

func (*SeriesBool) Rolling

func (self *SeriesBool) Rolling(window int) RollingWindow

func (*SeriesBool) Shift

func (self *SeriesBool) Shift(periods int) Series

func (*SeriesBool) StdDev

func (self *SeriesBool) StdDev() float64

func (*SeriesBool) Subset

func (self *SeriesBool) Subset(start, end int, opt ...any) Series

func (*SeriesBool) Type

func (self *SeriesBool) Type() Type

func (*SeriesBool) Values

func (self *SeriesBool) Values() any

type SeriesFloat64

type SeriesFloat64 struct {
	NDFrame
	Data []float64
}

func NewSeriesFloat64

func NewSeriesFloat64(name string, vals ...interface{}) *SeriesFloat64

func (*SeriesFloat64) Copy

func (self *SeriesFloat64) Copy() Series

func (*SeriesFloat64) EWM

EWM provides exponential weighted calculations.

func (*SeriesFloat64) Empty

func (self *SeriesFloat64) Empty() Series

Empty returns an empty Series of the same type

func (*SeriesFloat64) Len

func (self *SeriesFloat64) Len() int

func (*SeriesFloat64) Mean

func (self *SeriesFloat64) Mean() float64

Mean calculates the average value of a series

func (*SeriesFloat64) Name

func (self *SeriesFloat64) Name() string

func (*SeriesFloat64) Records

func (self *SeriesFloat64) Records() []string

Records returns the elements of a Series as a []string

func (*SeriesFloat64) Rename

func (self *SeriesFloat64) Rename(n string)

func (*SeriesFloat64) Repeat

func (self *SeriesFloat64) Repeat(x any, repeats int) Series

func (*SeriesFloat64) Rolling

func (self *SeriesFloat64) Rolling(window int) RollingWindow

Rolling creates new RollingWindow

func (*SeriesFloat64) Shift

func (self *SeriesFloat64) Shift(periods int) Series

func (*SeriesFloat64) StdDev

func (self *SeriesFloat64) StdDev() float64

func (*SeriesFloat64) Subset

func (self *SeriesFloat64) Subset(start, end int, opt ...any) Series

func (*SeriesFloat64) Type

func (self *SeriesFloat64) Type() Type

Type returns the type of data the series holds.

func (*SeriesFloat64) Values

func (self *SeriesFloat64) Values() any

type SeriesInt64

type SeriesInt64 struct {
	NDFrame
	Data []int64
}

func NewSeriesInt64

func NewSeriesInt64(name string, vals ...interface{}) *SeriesInt64

NewSeriesInt64 creates a new series with the underlying type as int64.

func (*SeriesInt64) Copy

func (self *SeriesInt64) Copy() Series

func (*SeriesInt64) Empty

func (self *SeriesInt64) Empty() Series

func (*SeriesInt64) Len

func (self *SeriesInt64) Len() int

func (*SeriesInt64) Mean

func (self *SeriesInt64) Mean() float64

func (*SeriesInt64) Name

func (self *SeriesInt64) Name() string

func (*SeriesInt64) Records

func (self *SeriesInt64) Records() []string

Records returns the elements of a Series as a []string

func (*SeriesInt64) Rename

func (self *SeriesInt64) Rename(n string)

func (*SeriesInt64) Repeat

func (self *SeriesInt64) Repeat(x any, repeats int) Series

func (*SeriesInt64) Rolling

func (self *SeriesInt64) Rolling(window int) RollingWindow

func (*SeriesInt64) Shift

func (self *SeriesInt64) Shift(periods int) Series

func (*SeriesInt64) StdDev

func (self *SeriesInt64) StdDev() float64

func (*SeriesInt64) Subset

func (self *SeriesInt64) Subset(start, end int, opt ...any) Series

func (*SeriesInt64) Type

func (self *SeriesInt64) Type() Type

func (*SeriesInt64) Values

func (self *SeriesInt64) Values() any

type SeriesString

type SeriesString struct {
	NDFrame
	Data []string
}

SeriesString 字符串类型序列

func NewSeriesString

func NewSeriesString(name string, vals ...interface{}) *SeriesString

NewSeriesString creates a new series with the underlying type as string.

func (*SeriesString) Copy

func (self *SeriesString) Copy() Series

func (*SeriesString) Empty

func (self *SeriesString) Empty() Series

func (*SeriesString) Len

func (self *SeriesString) Len() int

func (*SeriesString) Mean

func (self *SeriesString) Mean() float64

func (*SeriesString) Name

func (self *SeriesString) Name() string

func (*SeriesString) Records

func (self *SeriesString) Records() []string

func (*SeriesString) Rename

func (self *SeriesString) Rename(n string)

func (*SeriesString) Repeat

func (self *SeriesString) Repeat(x any, repeats int) Series

func (*SeriesString) Rolling

func (self *SeriesString) Rolling(window int) RollingWindow

func (*SeriesString) Shift

func (self *SeriesString) Shift(periods int) Series

func (*SeriesString) StdDev

func (self *SeriesString) StdDev() float64

func (*SeriesString) Subset

func (self *SeriesString) Subset(start, end int, opt ...any) Series

func (*SeriesString) Type

func (self *SeriesString) Type() Type

func (*SeriesString) Values

func (self *SeriesString) Values() any

type StringFormatter

type StringFormatter func(val interface{}) string

StringFormatter is used to convert a value into a string. Val can be nil or the concrete type stored by the series.

type Type

type Type = string

Type is a convenience alias that can be used for a more type safe way of reason and use Series types.

type WriteOption

type WriteOption func(*writeOptions)

WriteOption is the type used to configure the writing of elements

func WriteHeader

func WriteHeader(b bool) WriteOption

WriteHeader sets the writeHeader option for writeOptions.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL