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

@@ -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];
}