Update(blocks): python新增一些pandas图形块,多语言将在稳定后进行

新增pandas API如下:
1. 值排序: sort_values()
2. 获取前 / 后n行数据: head() / tail()
3. 根据所给条件筛选数据
4. 通过给定标签分组: groupby()
5. 常用聚合函数
This commit is contained in:
王立帮
2024-09-16 02:52:18 +08:00
parent 4570a2e9ab
commit b573250af6
4 changed files with 665 additions and 345 deletions

View File

@@ -1455,4 +1455,109 @@ export const py_sum = {
this.setOutput(true);
this.setTooltip('Returns the sum of the iterable.');
}
};
};
export const dataframe_sort_values = {
init: function () {
this.setColour(DATA_HUE);
this.appendValueInput('DICT')
.setAlign(Blockly.inputs.Align.RIGHT)
.setCheck('Dict');
this.appendDummyInput()
.setAlign(Blockly.inputs.Align.RIGHT)
.appendField('值排序');
this.appendValueInput('KEY')
.setAlign(Blockly.inputs.Align.RIGHT)
.appendField('标签');
this.appendDummyInput()
.setAlign(Blockly.inputs.Align.RIGHT)
.appendField('排序方式')
.appendField(new Blockly.FieldDropdown([
['升序', 'True'],
['降序', 'False']
]), 'AS_CENDING');
this.setOutput(true);
this.setInputsInline(true);
this.setTooltip('');
}
}
export const dataframe_head_tail = {
init: function () {
this.setColour(DATA_HUE);
this.appendValueInput('DICT')
.setAlign(Blockly.inputs.Align.RIGHT)
.setCheck('Dict');
this.appendDummyInput()
.setAlign(Blockly.inputs.Align.RIGHT)
.appendField('获取')
.appendField(new Blockly.FieldDropdown([
['前几行', 'head'],
['最后几行', 'tail']
]), 'TYPE');
this.appendValueInput('LINES')
.setAlign(Blockly.inputs.Align.RIGHT)
.appendField('行数');
this.setOutput(true);
this.setInputsInline(true);
this.setTooltip('');
}
}
export const dataframe_select = {
init: function () {
this.setColour(DATA_HUE);
this.appendValueInput('DICT')
.setAlign(Blockly.inputs.Align.RIGHT)
.setCheck('Dict');
this.appendDummyInput()
.setAlign(Blockly.inputs.Align.RIGHT)
.appendField('筛选数据');
this.appendValueInput('KEY')
.setAlign(Blockly.inputs.Align.RIGHT)
.appendField('满足条件');
this.setOutput(true);
this.setInputsInline(true);
this.setTooltip('');
}
}
export const dataframe_groupby = {
init: function () {
this.setColour(DATA_HUE);
this.appendValueInput('DICT')
.setAlign(Blockly.inputs.Align.RIGHT)
.setCheck('Dict');
this.appendValueInput('KEY')
.setAlign(Blockly.inputs.Align.RIGHT)
.appendField('通过标签');
this.appendDummyInput()
.setAlign(Blockly.inputs.Align.RIGHT)
.appendField('分组');
this.setOutput(true);
this.setInputsInline(true);
this.setTooltip('');
}
}
export const dataframe_aggregate_func = {
init: function () {
this.setColour(DATA_HUE);
this.appendDummyInput()
.setAlign(Blockly.inputs.Align.RIGHT)
.appendField(new Blockly.FieldDropdown([
['求最小值', 'min'],
['求最大值', 'max'],
['求和', 'sum'],
['求平均值', 'mean'],
['求中位数', 'median'],
['求标准差', 'std']
]), 'TYPE');
this.appendValueInput('DICT')
.setAlign(Blockly.inputs.Align.RIGHT)
.setCheck('Dict');
this.setOutput(true);
this.setInputsInline(true);
this.setTooltip('');
}
}

View File

@@ -644,4 +644,41 @@ export const py_sum = function (block, generator) {
var array = generator.valueToCode(block, 'ARRAY', generator.ORDER_ATOMIC) || '[]';
var code = 'sum(' + array + ')';
return [code, generator.ORDER_ATOMIC];
}
export const dataframe_sort_values = function (block, generator) {
const dict = generator.valueToCode(block, 'DICT', generator.ORDER_ATOMIC) || 'df';
const key = generator.valueToCode(block, 'KEY', generator.ORDER_ATOMIC) || '\'tag\'';
const ascending = block.getFieldValue('AS_CENDING');
const code = `${dict}.sort_values(by=${key}, ascending=${ascending})`;
return [code, generator.ORDER_ATOMIC];
}
export const dataframe_head_tail = function (block, generator) {
const dict = generator.valueToCode(block, 'DICT', generator.ORDER_ATOMIC) || 'df';
const lines = generator.valueToCode(block, 'LINES', generator.ORDER_ATOMIC) || '1';
const type = block.getFieldValue('TYPE');
const code = `${dict}.${type}(${lines})`;
return [code, generator.ORDER_ATOMIC];
}
export const dataframe_select = function (block, generator) {
const dict = generator.valueToCode(block, 'DICT', generator.ORDER_ATOMIC) || 'df';
const key = generator.valueToCode(block, 'KEY', generator.ORDER_ATOMIC) || 'df[\'tag\'] > 1';
const code = `${dict}[${key}]`;
return [code, generator.ORDER_ATOMIC];
}
export const dataframe_groupby = function (block, generator) {
const dict = generator.valueToCode(block, 'DICT', generator.ORDER_ATOMIC) || 'df';
const key = generator.valueToCode(block, 'KEY', generator.ORDER_ATOMIC) || '\'tag\'';
const code = `${dict}.groupby(by=${key})`;
return [code, generator.ORDER_ATOMIC];
}
export const dataframe_aggregate_func = function (block, generator) {
const dict = generator.valueToCode(block, 'DICT', generator.ORDER_ATOMIC) || 'df';
const type = block.getFieldValue('TYPE');
const code = `${dict}.${type}()`;
return [code, generator.ORDER_ATOMIC];
}

View File

@@ -2457,11 +2457,11 @@
</value>
</block>
<block type="dataframe_info">
<value name="DATAFRAME">
<shadow type="variables_get">
<field name="VAR">df</field>
</shadow>
</value>
<value name="DATAFRAME">
<shadow type="variables_get">
<field name="VAR">df</field>
</shadow>
</value>
</block>
<block type="dataframe_median">
<value name="DATAFRAME">
@@ -2472,61 +2472,61 @@
</block>
<block type="numpy_min">
<value name="ARRAY">
<shadow type="variables_get">
<field name="VAR">array</field>
</shadow>
<shadow type="variables_get">
<field name="VAR">array</field>
</shadow>
</value>
<dummy>
<field name="AXIS">None</field>
<field name="AXIS">None</field>
</dummy>
</block>
<block type="numpy_max">
<value name="ARRAY">
<shadow type="variables_get">
<field name="VAR">array</field>
</shadow>
<shadow type="variables_get">
<field name="VAR">array</field>
</shadow>
</value>
<dummy>
<field name="AXIS">None</field>
<field name="AXIS">None</field>
</dummy>
</block>
<block type="numpy_sum">
<value name="ARRAY">
<shadow type="variables_get">
<field name="VAR">array</field>
</shadow>
<shadow type="variables_get">
<field name="VAR">array</field>
</shadow>
</value>
</block>
<block type="py_sum">
<block type="py_sum">
<value name="ARRAY">
<shadow type="variables_get">
<field name="VAR">array</field>
</shadow>
<shadow type="variables_get">
<field name="VAR">array</field>
</shadow>
</value>
</block>
</block>
<block type="numpy_size">
<value name="ARRAY">
<shadow type="variables_get">
<field name="VAR">array</field>
</shadow>
<shadow type="variables_get">
<field name="VAR">array</field>
</shadow>
</value>
</block>
<block type="dataframe_fillna">
<value name="DATAFRAME">
<shadow type="variables_get">
<field name="VAR">df</field>
</shadow>
<shadow type="variables_get">
<field name="VAR">df</field>
</shadow>
</value>
<value name="VALUE">
<shadow type="variables_get">
<field name="VAR">value</field>
</shadow>
<shadow type="variables_get">
<field name="VAR">value</field>
</shadow>
</value>
<dummy>
<field name="INPLACE">False</field>
<field name="INPLACE">False</field>
</dummy>
</block>
</block>
<block type="pandas_dropna">
<value name="DF">
<shadow type="variables_get">
@@ -2578,9 +2578,9 @@
</block>
<block type="numpy_random_random">
<value name="SIZE">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
<block type="numpy_c_">
@@ -2618,9 +2618,9 @@
</block>
<block type="numpy_square">
<value name="ARRAY">
<shadow type="variables_get">
<field name="VAR">array</field>
</shadow>
<shadow type="variables_get">
<field name="VAR">array</field>
</shadow>
</value>
</block>
<block type="matrix_multiplication">
@@ -2637,14 +2637,14 @@
</block>
<block type="numpy_dot">
<value name="ARRAY1">
<shadow type="variables_get">
<field name="VAR">array1</field>
</shadow>
<shadow type="variables_get">
<field name="VAR">array1</field>
</shadow>
</value>
<value name="ARRAY2">
<shadow type="variables_get">
<field name="VAR">array2</field>
</shadow>
<shadow type="variables_get">
<field name="VAR">array2</field>
</shadow>
</value>
</block>
<block type="array_toarray">
@@ -2835,6 +2835,95 @@
</shadow>
</value>
</block>
<block type="dataframe_sort_values">
<value name="DICT">
<shadow type="variables_get">
<field name="VAR">df1</field>
</shadow>
</value>
<value name="KEY">
<shadow type="text">
<field name="TEXT">tag</field>
</shadow>
</value>
</block>
<block type="dataframe_head_tail">
<value name="DICT">
<shadow type="variables_get">
<field name="VAR">df1</field>
</shadow>
</value>
<value name="LINES">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
<block type="dataframe_select">
<value name="DICT">
<shadow type="variables_get">
<field name="VAR">df1</field>
</shadow>
</value>
<value name="KEY">
<block type="logic_compare">
<field name="OP">GT</field>
<value name="A">
<block type="dataframe_get">
<field name="MODE">column</field>
<value name="DICT">
<shadow type="variables_get">
<field name="VAR">df1</field>
</shadow>
</value>
<value name="KEY">
<shadow type="text">
<field name="TEXT">tag</field>
</shadow>
</value>
</block>
</value>
<value name="B">
<block type="math_number">
<field name="NUM">1</field>
</block>
</value>
</block>
</value>
</block>
<block type="dataframe_groupby">
<value name="DICT">
<shadow type="variables_get">
<field name="VAR">df1</field>
</shadow>
</value>
<value name="KEY">
<shadow type="text">
<field name="TEXT">tag</field>
</shadow>
</value>
</block>
<block type="dataframe_aggregate_func">
<field name="TYPE">min</field>
<value name="DICT">
<shadow type="variables_get">
<field name="VAR">df1</field>
</shadow>
<block type="dataframe_get">
<field name="MODE">column</field>
<value name="DICT">
<shadow type="variables_get">
<field name="VAR">df1</field>
</shadow>
</value>
<value name="KEY">
<shadow type="text">
<field name="TEXT">tag</field>
</shadow>
</value>
</block>
</value>
</block>
<block type="pl_plot_easy">
<value name="SER">
<shadow type="variables_get">
@@ -3225,342 +3314,342 @@
</category>
<category id="catsklearn" colour="80">
<block type="sklearn_make_classification">
<value name="n_samples">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
<value name="n_features">
<shadow type="math_number">
<field name="NUM">20</field>
</shadow>
</value>
<value name="n_informative">
<shadow type="math_number">
<field name="NUM">2</field>
</shadow>
</value>
<value name="n_redundant">
<shadow type="math_number">
<field name="NUM">2</field>
</shadow>
</value>
<value name="n_repeated">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="n_classes">
<shadow type="math_number">
<field name="NUM">2</field>
</shadow>
</value>
<value name="n_clusters_per_class">
<shadow type="math_number">
<field name="NUM">2</field>
</shadow>
</value>
<value name="random_state">
<shadow type="logic_null"></shadow>
</value>
<value name="n_samples">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
<value name="n_features">
<shadow type="math_number">
<field name="NUM">20</field>
</shadow>
</value>
<value name="n_informative">
<shadow type="math_number">
<field name="NUM">2</field>
</shadow>
</value>
<value name="n_redundant">
<shadow type="math_number">
<field name="NUM">2</field>
</shadow>
</value>
<value name="n_repeated">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="n_classes">
<shadow type="math_number">
<field name="NUM">2</field>
</shadow>
</value>
<value name="n_clusters_per_class">
<shadow type="math_number">
<field name="NUM">2</field>
</shadow>
</value>
<value name="random_state">
<shadow type="logic_null"></shadow>
</value>
</block>
<block type="sklearn_make_regression">
<value name="n_samples">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
<value name="n_features">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
<value name="n_informative">
<shadow type="math_number">
<field name="NUM">10</field>
</shadow>
</value>
<value name="n_targets">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
<value name="bias">
<shadow type="math_number">
<field name="NUM">0.0</field>
</shadow>
</value>
<value name="noise">
<shadow type="math_number">
<field name="NUM">0.0</field>
</shadow>
</value>
<value name="random_state">
<shadow type="logic_null"></shadow>
</value>
<value name="n_samples">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
<value name="n_features">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
<value name="n_informative">
<shadow type="math_number">
<field name="NUM">10</field>
</shadow>
</value>
<value name="n_targets">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
<value name="bias">
<shadow type="math_number">
<field name="NUM">0.0</field>
</shadow>
</value>
<value name="noise">
<shadow type="math_number">
<field name="NUM">0.0</field>
</shadow>
</value>
<value name="random_state">
<shadow type="logic_null"></shadow>
</value>
</block>
<block type="sklearn_make_blobs">
<value name="n_samples">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
<value name="n_features">
<shadow type="math_number">
<field name="NUM">2</field>
</shadow>
</value>
<value name="centers">
<shadow type="logic_null"></shadow>
</value>
<value name="cluster_std">
<shadow type="math_number">
<field name="NUM">1.0</field>
</shadow>
</value>
<value name="center_box">
<block type="tuple_create_with_text_return">
<field name="TEXT">-10.0,10.0</field>
</block>
</value>
<value name="shuffle">
<shadow type="logic_boolean">
<field name="BOOL">TRUE</field>
</shadow>
</value>
<value name="random_state">
<shadow type="logic_null"></shadow>
</value>
<value name="n_samples">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
<value name="n_features">
<shadow type="math_number">
<field name="NUM">2</field>
</shadow>
</value>
<value name="centers">
<shadow type="logic_null"></shadow>
</value>
<value name="cluster_std">
<shadow type="math_number">
<field name="NUM">1.0</field>
</shadow>
</value>
<value name="center_box">
<block type="tuple_create_with_text_return">
<field name="TEXT">-10.0,10.0</field>
</block>
</value>
<value name="shuffle">
<shadow type="logic_boolean">
<field name="BOOL">TRUE</field>
</shadow>
</value>
<value name="random_state">
<shadow type="logic_null"></shadow>
</value>
</block>
<block type="sklearn_load">
</block>
<block type="sklearn_data_target">
<value name="name">
<shadow type="variables_get">
<field name="VAR">iris</field>
</shadow>
</value>
<value name="name">
<shadow type="variables_get">
<field name="VAR">iris</field>
</shadow>
</value>
</block>
<block type="sklearn_train_test_split">
<value name="train_data">
<shadow type="variables_get">
<field name="VAR">iris_X</field>
</shadow>
</value>
<value name="train_target">
<shadow type="variables_get">
<field name="VAR">iris_y</field>
</shadow>
</value>
<value name="test_size">
<shadow type="math_number">
<field name="NUM">0.3</field>
</shadow>
</value>
<value name="rondom_state">
<shadow type="logic_null"></shadow>
</value>
<value name="train_data">
<shadow type="variables_get">
<field name="VAR">iris_X</field>
</shadow>
</value>
<value name="train_target">
<shadow type="variables_get">
<field name="VAR">iris_y</field>
</shadow>
</value>
<value name="test_size">
<shadow type="math_number">
<field name="NUM">0.3</field>
</shadow>
</value>
<value name="rondom_state">
<shadow type="logic_null"></shadow>
</value>
</block>
<block type="sklearn_LinearRegression">
<value name="model_name">
<shadow type="variables_get">
<field name="VAR">model</field>
</shadow>
</value>
<value name="fit_intercept">
<shadow type="logic_boolean">
<field name="BOOL">TRUE</field>
</shadow>
</value>
<value name="normalize">
<shadow type="logic_boolean">
<field name="BOOL">FALSE</field>
</shadow>
</value>
<value name="n_jobs">
<shadow type="logic_null"></shadow>
</value>
<value name="model_name">
<shadow type="variables_get">
<field name="VAR">model</field>
</shadow>
</value>
<value name="fit_intercept">
<shadow type="logic_boolean">
<field name="BOOL">TRUE</field>
</shadow>
</value>
<value name="normalize">
<shadow type="logic_boolean">
<field name="BOOL">FALSE</field>
</shadow>
</value>
<value name="n_jobs">
<shadow type="logic_null"></shadow>
</value>
</block>
<block type="sklearn_Ridge">
<value name="model_name">
<shadow type="variables_get">
<field name="VAR">model</field>
</shadow>
</value>
<value name="alpha">
<shadow type="math_number">
<field name="NUM">1.0</field>
</shadow>
</value>
<value name="fit_intercept">
<shadow type="logic_boolean">
<field name="BOOL">TRUE</field>
</shadow>
</value>
<value name="normalize">
<shadow type="logic_boolean">
<field name="BOOL">FALSE</field>
</shadow>
</value>
<value name="max_iter">
<shadow type="math_number">
<field name="NUM">300</field>
</shadow>
</value>
<value name="random_state">
<shadow type="logic_null"></shadow>
</value>
<value name="model_name">
<shadow type="variables_get">
<field name="VAR">model</field>
</shadow>
</value>
<value name="alpha">
<shadow type="math_number">
<field name="NUM">1.0</field>
</shadow>
</value>
<value name="fit_intercept">
<shadow type="logic_boolean">
<field name="BOOL">TRUE</field>
</shadow>
</value>
<value name="normalize">
<shadow type="logic_boolean">
<field name="BOOL">FALSE</field>
</shadow>
</value>
<value name="max_iter">
<shadow type="math_number">
<field name="NUM">300</field>
</shadow>
</value>
<value name="random_state">
<shadow type="logic_null"></shadow>
</value>
</block>
<block type="sklearn_DecisionTreeClassifier_Regressor">
<value name="model_name">
<shadow type="variables_get">
<field name="VAR">model</field>
</shadow>
</value>
<value name="max_depth">
<shadow type="logic_null"></shadow>
</value>
<value name="random_state">
<shadow type="logic_null"></shadow>
</value>
<value name="model_name">
<shadow type="variables_get">
<field name="VAR">model</field>
</shadow>
</value>
<value name="max_depth">
<shadow type="logic_null"></shadow>
</value>
<value name="random_state">
<shadow type="logic_null"></shadow>
</value>
</block>
<block type="sklearn_RandomForestClassifier_Regressor">
<value name="model_name">
<shadow type="variables_get">
<field name="VAR">model</field>
</shadow>
</value>
<value name="n_estimators">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
<value name="max_depth">
<shadow type="logic_null"></shadow>
</value>
<value name="n_jobs">
<shadow type="logic_null"></shadow>
</value>
<value name="random_state">
<shadow type="logic_null"></shadow>
</value>
<value name="model_name">
<shadow type="variables_get">
<field name="VAR">model</field>
</shadow>
</value>
<value name="n_estimators">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
<value name="max_depth">
<shadow type="logic_null"></shadow>
</value>
<value name="n_jobs">
<shadow type="logic_null"></shadow>
</value>
<value name="random_state">
<shadow type="logic_null"></shadow>
</value>
</block>
<block type="sklearn_KNeighborsClassifier_Regressor">
<value name="model_name">
<shadow type="variables_get">
<field name="VAR">model</field>
</shadow>
</value>
<value name="K">
<shadow type="math_number">
<field name="NUM">5</field>
</shadow>
</value>
<value name="n_jobs">
<shadow type="logic_null"></shadow>
</value>
<value name="model_name">
<shadow type="variables_get">
<field name="VAR">model</field>
</shadow>
</value>
<value name="K">
<shadow type="math_number">
<field name="NUM">5</field>
</shadow>
</value>
<value name="n_jobs">
<shadow type="logic_null"></shadow>
</value>
</block>
<block type="sklearn_GaussianNB">
<value name="model_name">
<shadow type="variables_get">
<field name="VAR">model</field>
</shadow>
</value>
<value name="model_name">
<shadow type="variables_get">
<field name="VAR">model</field>
</shadow>
</value>
</block>
<block type="sklearn_KMeans">
<value name="model_name">
<shadow type="variables_get">
<field name="VAR">model</field>
</shadow>
</value>
<value name="n_clusters">
<shadow type="math_number">
<field name="NUM">8</field>
</shadow>
</value>
<value name="max_iter">
<shadow type="math_number">
<field name="NUM">300</field>
</shadow>
</value>
<value name="random_state">
<shadow type="logic_null"></shadow>
</value>
<value name="n_jobs">
<shadow type="logic_null"></shadow>
</value>
<value name="model_name">
<shadow type="variables_get">
<field name="VAR">model</field>
</shadow>
</value>
<value name="n_clusters">
<shadow type="math_number">
<field name="NUM">8</field>
</shadow>
</value>
<value name="max_iter">
<shadow type="math_number">
<field name="NUM">300</field>
</shadow>
</value>
<value name="random_state">
<shadow type="logic_null"></shadow>
</value>
<value name="n_jobs">
<shadow type="logic_null"></shadow>
</value>
</block>
<block type="sklearn_fit">
<value name="model_name">
<shadow type="variables_get">
<field name="VAR">model</field>
</shadow>
</value>
<value name="train_data">
<shadow type="variables_get">
<field name="VAR">X_train</field>
</shadow>
</value>
<value name="train_target">
<shadow type="variables_get">
<field name="VAR">y_train</field>
</shadow>
</value>
<value name="model_name">
<shadow type="variables_get">
<field name="VAR">model</field>
</shadow>
</value>
<value name="train_data">
<shadow type="variables_get">
<field name="VAR">X_train</field>
</shadow>
</value>
<value name="train_target">
<shadow type="variables_get">
<field name="VAR">y_train</field>
</shadow>
</value>
</block>
<block type="sklearn_score">
<value name="model_name">
<shadow type="variables_get">
<field name="VAR">model</field>
</shadow>
</value>
<value name="train_data">
<shadow type="variables_get">
<field name="VAR">X_test</field>
</shadow>
</value>
<value name="train_target">
<shadow type="variables_get">
<field name="VAR">y_test</field>
</shadow>
</value>
<value name="model_name">
<shadow type="variables_get">
<field name="VAR">model</field>
</shadow>
</value>
<value name="train_data">
<shadow type="variables_get">
<field name="VAR">X_test</field>
</shadow>
</value>
<value name="train_target">
<shadow type="variables_get">
<field name="VAR">y_test</field>
</shadow>
</value>
</block>
<block type="sklearn_predict">
<value name="model_name">
<shadow type="variables_get">
<field name="VAR">model</field>
</shadow>
</value>
<value name="train_data">
<shadow type="variables_get">
<field name="VAR">X_test</field>
</shadow>
</value>
<value name="model_name">
<shadow type="variables_get">
<field name="VAR">model</field>
</shadow>
</value>
<value name="train_data">
<shadow type="variables_get">
<field name="VAR">X_test</field>
</shadow>
</value>
</block>
<block type="sklearn_coef_intercept">
<value name="model_name">
<shadow type="variables_get">
<field name="VAR">model</field>
</shadow>
</value>
<value name="model_name">
<shadow type="variables_get">
<field name="VAR">model</field>
</shadow>
</value>
</block>
<block type="sklearn_cluster_centers_labels_inertia">
<value name="model_name">
<shadow type="variables_get">
<field name="VAR">model</field>
</shadow>
</value>
<value name="model_name">
<shadow type="variables_get">
<field name="VAR">model</field>
</shadow>
</value>
</block>
<block type="sklearn_save_load_model">
<value name="model_name">
<shadow type="variables_get">
<field name="VAR">model</field>
</shadow>
</value>
<value name="address">
<shadow type="text">
<field name="TEXT">D:/mixly/test.pkl</field>
</shadow>
</value>
<value name="model_name">
<shadow type="variables_get">
<field name="VAR">model</field>
</shadow>
</value>
<value name="address">
<shadow type="text">
<field name="TEXT">D:/mixly/test.pkl</field>
</shadow>
</value>
</block>
</category>
</category>
</xml>

View File

@@ -2578,6 +2578,95 @@
</shadow>
</value>
</block>
<block type="dataframe_sort_values">
<value name="DICT">
<shadow type="variables_get">
<field name="VAR">df1</field>
</shadow>
</value>
<value name="KEY">
<shadow type="text">
<field name="TEXT">tag</field>
</shadow>
</value>
</block>
<block type="dataframe_head_tail">
<value name="DICT">
<shadow type="variables_get">
<field name="VAR">df1</field>
</shadow>
</value>
<value name="LINES">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
<block type="dataframe_select">
<value name="DICT">
<shadow type="variables_get">
<field name="VAR">df1</field>
</shadow>
</value>
<value name="KEY">
<block type="logic_compare">
<field name="OP">GT</field>
<value name="A">
<block type="dataframe_get">
<field name="MODE">column</field>
<value name="DICT">
<shadow type="variables_get">
<field name="VAR">df1</field>
</shadow>
</value>
<value name="KEY">
<shadow type="text">
<field name="TEXT">tag</field>
</shadow>
</value>
</block>
</value>
<value name="B">
<block type="math_number">
<field name="NUM">1</field>
</block>
</value>
</block>
</value>
</block>
<block type="dataframe_groupby">
<value name="DICT">
<shadow type="variables_get">
<field name="VAR">df1</field>
</shadow>
</value>
<value name="KEY">
<shadow type="text">
<field name="TEXT">tag</field>
</shadow>
</value>
</block>
<block type="dataframe_aggregate_func">
<field name="TYPE">min</field>
<value name="DICT">
<shadow type="variables_get">
<field name="VAR">df1</field>
</shadow>
<block type="dataframe_get">
<field name="MODE">column</field>
<value name="DICT">
<shadow type="variables_get">
<field name="VAR">df1</field>
</shadow>
</value>
<value name="KEY">
<shadow type="text">
<field name="TEXT">tag</field>
</shadow>
</value>
</block>
</value>
</block>
<block type="pl_plot_easy">
<value name="SER">
<shadow type="variables_get">