funcguard 0.2.41__tar.gz → 0.2.43__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {funcguard-0.2.41 → funcguard-0.2.43}/PKG-INFO +2 -2
- {funcguard-0.2.41 → funcguard-0.2.43}/README.md +1 -1
- {funcguard-0.2.41 → funcguard-0.2.43}/funcguard/__init__.py +4 -2
- {funcguard-0.2.41 → funcguard-0.2.43}/funcguard/pd_utils/__init__.py +3 -1
- {funcguard-0.2.41 → funcguard-0.2.43}/funcguard/pd_utils/convert_utils.py +42 -1
- {funcguard-0.2.41 → funcguard-0.2.43}/funcguard/pd_utils/statistics/agg_utils.py +10 -7
- {funcguard-0.2.41 → funcguard-0.2.43}/funcguard/pd_utils/statistics/count_utils.py +10 -6
- {funcguard-0.2.41 → funcguard-0.2.43}/funcguard/pd_utils/statistics/df_statistics.py +20 -14
- {funcguard-0.2.41 → funcguard-0.2.43}/funcguard.egg-info/PKG-INFO +2 -2
- {funcguard-0.2.41 → funcguard-0.2.43}/setup.py +1 -1
- {funcguard-0.2.41 → funcguard-0.2.43}/LICENSE +0 -0
- {funcguard-0.2.41 → funcguard-0.2.43}/funcguard/calculate.py +0 -0
- {funcguard-0.2.41 → funcguard-0.2.43}/funcguard/core.py +0 -0
- {funcguard-0.2.41 → funcguard-0.2.43}/funcguard/data_models/__init__.py +0 -0
- {funcguard-0.2.41 → funcguard-0.2.43}/funcguard/data_models/request_models.py +0 -0
- {funcguard-0.2.41 → funcguard-0.2.43}/funcguard/ip_utils.py +0 -0
- {funcguard-0.2.41 → funcguard-0.2.43}/funcguard/log_utils.py +0 -0
- {funcguard-0.2.41 → funcguard-0.2.43}/funcguard/pd_utils/date_utils.py +0 -0
- {funcguard-0.2.41 → funcguard-0.2.43}/funcguard/pd_utils/fill_round.py +0 -0
- {funcguard-0.2.41 → funcguard-0.2.43}/funcguard/pd_utils/filter.py +0 -0
- {funcguard-0.2.41 → funcguard-0.2.43}/funcguard/pd_utils/json_utils/__init__.py +0 -0
- {funcguard-0.2.41 → funcguard-0.2.43}/funcguard/pd_utils/json_utils/json_parser.py +0 -0
- {funcguard-0.2.41 → funcguard-0.2.43}/funcguard/pd_utils/statistics/__init__.py +0 -0
- {funcguard-0.2.41 → funcguard-0.2.43}/funcguard/pd_utils/statistics/mask_utils.py +0 -0
- {funcguard-0.2.41 → funcguard-0.2.43}/funcguard/printer.py +0 -0
- {funcguard-0.2.41 → funcguard-0.2.43}/funcguard/time_utils.py +0 -0
- {funcguard-0.2.41 → funcguard-0.2.43}/funcguard/tools.py +0 -0
- {funcguard-0.2.41 → funcguard-0.2.43}/funcguard.egg-info/SOURCES.txt +0 -0
- {funcguard-0.2.41 → funcguard-0.2.43}/funcguard.egg-info/dependency_links.txt +0 -0
- {funcguard-0.2.41 → funcguard-0.2.43}/funcguard.egg-info/not-zip-safe +0 -0
- {funcguard-0.2.41 → funcguard-0.2.43}/funcguard.egg-info/requires.txt +0 -0
- {funcguard-0.2.41 → funcguard-0.2.43}/funcguard.egg-info/top_level.txt +0 -0
- {funcguard-0.2.41 → funcguard-0.2.43}/setup.cfg +0 -0
- {funcguard-0.2.41 → funcguard-0.2.43}/tests/__init__.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: funcguard
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.43
|
|
4
4
|
Summary: FuncGuard是一个Python库,提供函数执行超时控制、重试机制、HTTP请求封装和格式化打印工具。
|
|
5
5
|
Home-page: https://github.com/tinycen/funcguard
|
|
6
6
|
Author: tinycen
|
|
@@ -542,7 +542,7 @@ print(f"当前价格: {current_price}, 变化: {price_change}") # 输出: 当
|
|
|
542
542
|
| 函数/类名 | 功能说明 | 文档 |
|
|
543
543
|
|-----------|----------|------|
|
|
544
544
|
| `pd_fill_na` / `pd_fill_nat` | 数据填充 | [查看](docs/pandas/fill.md) |
|
|
545
|
-
| `pd_convert_columns` / `pd_convert_decimal` / `pd_convert_numeric_series` / `pd_convert_str_datetime` / `pd_convert_datetime_str` | 类型转换 | [查看](docs/pandas/convert.md) |
|
|
545
|
+
| `pd_convert_columns` / `pd_convert_decimal` / `pd_convert_numeric_series` / `pd_convert_str_datetime` / `pd_convert_datetime_str` / `pd_convert_series` | 类型转换 | [查看](docs/pandas/convert.md) |
|
|
546
546
|
| `pd_load_json` | JSON解析 | [查看](docs/pandas/json.md) |
|
|
547
547
|
| `pd_filter` | 数据筛选 | [查看](docs/pandas/filter.md) |
|
|
548
548
|
| `pd_count` / `pd_value_counts` | 条件计数统计 | [查看](docs/pandas/count.md) |
|
|
@@ -515,7 +515,7 @@ print(f"当前价格: {current_price}, 变化: {price_change}") # 输出: 当
|
|
|
515
515
|
| 函数/类名 | 功能说明 | 文档 |
|
|
516
516
|
|-----------|----------|------|
|
|
517
517
|
| `pd_fill_na` / `pd_fill_nat` | 数据填充 | [查看](docs/pandas/fill.md) |
|
|
518
|
-
| `pd_convert_columns` / `pd_convert_decimal` / `pd_convert_numeric_series` / `pd_convert_str_datetime` / `pd_convert_datetime_str` | 类型转换 | [查看](docs/pandas/convert.md) |
|
|
518
|
+
| `pd_convert_columns` / `pd_convert_decimal` / `pd_convert_numeric_series` / `pd_convert_str_datetime` / `pd_convert_datetime_str` / `pd_convert_series` | 类型转换 | [查看](docs/pandas/convert.md) |
|
|
519
519
|
| `pd_load_json` | JSON解析 | [查看](docs/pandas/json.md) |
|
|
520
520
|
| `pd_filter` | 数据筛选 | [查看](docs/pandas/filter.md) |
|
|
521
521
|
| `pd_count` / `pd_value_counts` | 条件计数统计 | [查看](docs/pandas/count.md) |
|
|
@@ -14,7 +14,8 @@ from .pd_utils import (
|
|
|
14
14
|
round_columns as pd_round_columns,
|
|
15
15
|
cal_date_diff as pd_cal_date_diff,
|
|
16
16
|
|
|
17
|
-
#
|
|
17
|
+
# 数据转换类
|
|
18
|
+
convert_series as pd_convert_series,
|
|
18
19
|
convert_columns as pd_convert_columns,
|
|
19
20
|
convert_decimal as pd_convert_decimal,
|
|
20
21
|
convert_numeric_series as pd_convert_numeric_series,
|
|
@@ -86,7 +87,8 @@ __all__ = [
|
|
|
86
87
|
"pd_fill_nat",
|
|
87
88
|
"pd_round_columns",
|
|
88
89
|
|
|
89
|
-
#
|
|
90
|
+
# 数据转换类
|
|
91
|
+
"pd_convert_series",
|
|
90
92
|
"pd_cal_date_diff",
|
|
91
93
|
"pd_convert_columns",
|
|
92
94
|
"pd_convert_decimal",
|
|
@@ -2,6 +2,7 @@ import pandas as pd
|
|
|
2
2
|
from .fill_round import fill_na, round_columns
|
|
3
3
|
from .date_utils import fill_nat, cal_date_diff
|
|
4
4
|
from .convert_utils import (
|
|
5
|
+
convert_series,
|
|
5
6
|
convert_columns,
|
|
6
7
|
convert_decimal,
|
|
7
8
|
convert_numeric_series,
|
|
@@ -31,7 +32,8 @@ __all__ = [
|
|
|
31
32
|
'round_columns',
|
|
32
33
|
'cal_date_diff',
|
|
33
34
|
|
|
34
|
-
#
|
|
35
|
+
# 数据转换类
|
|
36
|
+
'convert_series',
|
|
35
37
|
'convert_columns',
|
|
36
38
|
'convert_decimal',
|
|
37
39
|
'convert_numeric_series',
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import pandas as pd
|
|
2
2
|
from decimal import Decimal
|
|
3
|
-
from typing import Union, List, Dict, Any, Optional
|
|
3
|
+
from typing import Union, List, Dict, Any, Optional, Literal
|
|
4
4
|
from pandas import (
|
|
5
5
|
Int64Dtype,
|
|
6
6
|
Float64Dtype,
|
|
@@ -10,6 +10,47 @@ from pandas import (
|
|
|
10
10
|
from .json_utils import json_loads
|
|
11
11
|
|
|
12
12
|
|
|
13
|
+
def convert_series(
|
|
14
|
+
data: pd.Series,
|
|
15
|
+
return_type: Literal["dict", "df", "series"] = "dict"
|
|
16
|
+
) -> Union[Dict[Any, Union[int, float]], pd.DataFrame, pd.Series]:
|
|
17
|
+
"""
|
|
18
|
+
将 pandas Series 格式化为指定的返回类型。
|
|
19
|
+
|
|
20
|
+
参数:
|
|
21
|
+
- data (pd.Series):输入的 pandas Series 数据。
|
|
22
|
+
- return_type (str):返回类型,支持:
|
|
23
|
+
- "dict":返回字典(默认)。
|
|
24
|
+
- "df":返回 DataFrame。
|
|
25
|
+
- "series":返回 pandas Series。
|
|
26
|
+
|
|
27
|
+
返回:
|
|
28
|
+
- Union[Dict[Any, Union[int, float]], pd.DataFrame, pd.Series]:
|
|
29
|
+
根据 return_type 返回格式化后的结果。
|
|
30
|
+
|
|
31
|
+
示例:
|
|
32
|
+
>>> series = pd.Series([1, 2, 3], index=['a', 'b', 'c'])
|
|
33
|
+
>>> convert_series(series, "dict")
|
|
34
|
+
{'a': 1, 'b': 2, 'c': 3}
|
|
35
|
+
>>> convert_series(series, "df")
|
|
36
|
+
0
|
|
37
|
+
a 1
|
|
38
|
+
b 2
|
|
39
|
+
c 3
|
|
40
|
+
>>> convert_series(series, "series")
|
|
41
|
+
a 1
|
|
42
|
+
b 2
|
|
43
|
+
c 3
|
|
44
|
+
dtype: int64
|
|
45
|
+
"""
|
|
46
|
+
|
|
47
|
+
if return_type == "dict":
|
|
48
|
+
return data.to_dict()
|
|
49
|
+
elif return_type == "df":
|
|
50
|
+
return data.to_frame()
|
|
51
|
+
else: # "series"
|
|
52
|
+
return data
|
|
53
|
+
|
|
13
54
|
|
|
14
55
|
# 数据类型映射常量
|
|
15
56
|
TYPE_MAPPING = {
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
|
|
2
1
|
"""
|
|
3
2
|
聚合(aggregation)操作工具模块。
|
|
4
3
|
|
|
@@ -7,8 +6,9 @@ sum、mean、max、min、count、median、std、var等聚合计算。
|
|
|
7
6
|
"""
|
|
8
7
|
|
|
9
8
|
import pandas as pd
|
|
10
|
-
from typing import Any, Dict, Optional, Union, List, Tuple
|
|
9
|
+
from typing import Any, Dict, Optional, Union, List, Tuple, Literal
|
|
11
10
|
from .mask_utils import build_single_mask, build_base_mask
|
|
11
|
+
from ..convert_utils import convert_series
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
def group_agg(
|
|
@@ -20,8 +20,9 @@ def group_agg(
|
|
|
20
20
|
conditions: Optional[Union[Tuple, List[Tuple]]] = None,
|
|
21
21
|
logic: str = "and",
|
|
22
22
|
true_mask: Optional[pd.Series] = None,
|
|
23
|
-
false_mask: Optional[pd.Series] = None
|
|
24
|
-
|
|
23
|
+
false_mask: Optional[pd.Series] = None,
|
|
24
|
+
return_type: Literal["dict", "df", "series"] = "dict"
|
|
25
|
+
) -> Union[Dict[Any, Union[int, float]], pd.DataFrame, pd.Series]:
|
|
25
26
|
"""
|
|
26
27
|
按指定列分组,对另一列进行聚合统计。
|
|
27
28
|
|
|
@@ -38,9 +39,11 @@ def group_agg(
|
|
|
38
39
|
- logic (str):逻辑操作类型,"and" 或 "or",默认为 "and"。
|
|
39
40
|
- true_mask (pd.Series):初始True掩码,默认为None。
|
|
40
41
|
- false_mask (pd.Series):初始False掩码,默认为None。
|
|
42
|
+
- return_type (str):返回类型,支持 "dict"(字典)、"df"(DataFrame)和 "series"(Series),
|
|
43
|
+
默认为 "dict"。
|
|
41
44
|
|
|
42
45
|
返回:
|
|
43
|
-
- Dict[Any, Union[int, float]]
|
|
46
|
+
- Union[Dict[Any, Union[int, float]], pd.Series]:以分组值为键,聚合结果为值的字典或Series。
|
|
44
47
|
|
|
45
48
|
示例:
|
|
46
49
|
>>> group_agg(df, "category", "amount", "sum")
|
|
@@ -79,5 +82,5 @@ def group_agg(
|
|
|
79
82
|
elif sort == "desc":
|
|
80
83
|
result_series = result_series.sort_values(ascending=False)
|
|
81
84
|
|
|
82
|
-
#
|
|
83
|
-
return result_series
|
|
85
|
+
# 格式化并返回结果
|
|
86
|
+
return convert_series(result_series, return_type)
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import pandas as pd
|
|
2
|
-
from typing import List, Tuple, Union, Optional, Dict, Any, Mapping
|
|
2
|
+
from typing import List, Tuple, Union, Optional, Dict, Any, Mapping, Literal
|
|
3
3
|
from .mask_utils import build_single_mask, build_base_mask
|
|
4
|
+
from ..convert_utils import convert_series
|
|
4
5
|
|
|
5
6
|
|
|
6
7
|
def value_counts(
|
|
@@ -12,8 +13,9 @@ def value_counts(
|
|
|
12
13
|
conditions: Optional[Union[Tuple, List[Tuple]]] = None,
|
|
13
14
|
logic: str = "and",
|
|
14
15
|
true_mask: Optional[pd.Series] = None,
|
|
15
|
-
false_mask: Optional[pd.Series] = None
|
|
16
|
-
|
|
16
|
+
false_mask: Optional[pd.Series] = None,
|
|
17
|
+
return_type: Literal["dict", "df", "series"] = "dict"
|
|
18
|
+
) -> Union[Mapping[Any, Union[int, float]], pd.DataFrame, pd.Series]:
|
|
17
19
|
"""
|
|
18
20
|
统计DataFrame指定列中不同值的计数数据。
|
|
19
21
|
|
|
@@ -29,9 +31,11 @@ def value_counts(
|
|
|
29
31
|
- logic (str):逻辑操作类型,"and" 或 "or",默认为 "and"。
|
|
30
32
|
- true_mask (pd.Series):初始True掩码,默认为None。
|
|
31
33
|
- false_mask (pd.Series):初始False掩码,默认为None。
|
|
34
|
+
- return_type (str):返回类型,支持 "dict"(字典)、"df"(DataFrame)和 "series"(Series),
|
|
35
|
+
默认为 "dict"。
|
|
32
36
|
|
|
33
37
|
返回:
|
|
34
|
-
- Mapping[Any, Union[int, float]]
|
|
38
|
+
- Union[Mapping[Any, Union[int, float]], pd.Series]:以值为键,计数/百分比为值的字典或Series。
|
|
35
39
|
|
|
36
40
|
示例:
|
|
37
41
|
>>> value_counts(df, "status")
|
|
@@ -74,8 +78,8 @@ def value_counts(
|
|
|
74
78
|
dropna=dropna
|
|
75
79
|
)
|
|
76
80
|
|
|
77
|
-
#
|
|
78
|
-
return result_series
|
|
81
|
+
# 格式化并返回结果
|
|
82
|
+
return convert_series(result_series, return_type)
|
|
79
83
|
|
|
80
84
|
|
|
81
85
|
def count(
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import pandas as pd
|
|
2
|
-
from typing import Any, Dict, List, Tuple, Union, Optional, Mapping
|
|
2
|
+
from typing import Any, Dict, List, Tuple, Union, Optional, Mapping, Literal
|
|
3
3
|
from .mask_utils import build_single_mask as _original_build_single_mask, build_base_mask as _original_build_base_mask, combine_masks
|
|
4
4
|
from .count_utils import count as _original_count, value_counts as _original_value_counts
|
|
5
5
|
from .agg_utils import group_agg as _original_group_agg
|
|
@@ -43,8 +43,8 @@ class DataFrameStatistics:
|
|
|
43
43
|
self._false_mask = pd.Series([False] * self._length, index=self._index)
|
|
44
44
|
|
|
45
45
|
|
|
46
|
-
def build_base_mask(self, conditions: List[Tuple], logic: str = "and",
|
|
47
|
-
true_mask: Optional[pd.Series] = None,
|
|
46
|
+
def build_base_mask(self, conditions: List[Tuple], logic: str = "and",
|
|
47
|
+
true_mask: Optional[pd.Series] = None,
|
|
48
48
|
false_mask: Optional[pd.Series] = None) -> pd.Series:
|
|
49
49
|
"""
|
|
50
50
|
构建基础查询条件掩码,自动使用内部掩码参数
|
|
@@ -54,7 +54,7 @@ class DataFrameStatistics:
|
|
|
54
54
|
- logic (str):逻辑操作类型,"and" 或 "or",默认为 "and"
|
|
55
55
|
- true_mask (pd.Series):初始True掩码,默认为None(使用内部缓存)
|
|
56
56
|
- false_mask (pd.Series):初始False掩码,默认为None(使用内部缓存)
|
|
57
|
-
|
|
57
|
+
|
|
58
58
|
返回:
|
|
59
59
|
- pd.Series:布尔掩码,True表示符合条件的行
|
|
60
60
|
"""
|
|
@@ -69,10 +69,10 @@ class DataFrameStatistics:
|
|
|
69
69
|
def build_single_mask(self, condition: Tuple) -> pd.Series:
|
|
70
70
|
"""
|
|
71
71
|
构建单个掩码,用于简单条件判断,自动使用内部DataFrame
|
|
72
|
-
|
|
72
|
+
|
|
73
73
|
参数:
|
|
74
74
|
- condition (Tuple):条件元组,包含(列名, 运算符, 值)
|
|
75
|
-
|
|
75
|
+
|
|
76
76
|
返回:
|
|
77
77
|
- pd.Series:布尔掩码,True表示符合条件的行
|
|
78
78
|
**注意**:此Series是通过原生pandas表达式(df[col] > value)直接返回,
|
|
@@ -113,8 +113,9 @@ class DataFrameStatistics:
|
|
|
113
113
|
conditions: Optional[Union[Tuple, List[Tuple]]] = None,
|
|
114
114
|
logic: str = "and",
|
|
115
115
|
true_mask: Optional[pd.Series] = None,
|
|
116
|
-
false_mask: Optional[pd.Series] = None
|
|
117
|
-
|
|
116
|
+
false_mask: Optional[pd.Series] = None,
|
|
117
|
+
return_type: Literal["dict", "df", "series"] = "dict"
|
|
118
|
+
) -> Union[Mapping[Any, Union[int, float]], pd.DataFrame, pd.Series]:
|
|
118
119
|
"""
|
|
119
120
|
统计指定列中不同值的计数数据,自动使用内部掩码参数
|
|
120
121
|
|
|
@@ -128,9 +129,11 @@ class DataFrameStatistics:
|
|
|
128
129
|
- logic (str):逻辑操作类型,"and" 或 "or",默认为 "and"
|
|
129
130
|
- true_mask (pd.Series):初始True掩码,默认为None(使用内部缓存)
|
|
130
131
|
- false_mask (pd.Series):初始False掩码,默认为None(使用内部缓存)
|
|
132
|
+
- return_type (str):返回类型,支持 "dict"(字典)、"df"(DataFrame)和 "series"(Series),
|
|
133
|
+
默认为 "dict"。
|
|
131
134
|
|
|
132
135
|
返回:
|
|
133
|
-
- Mapping[Any, Union[int, float]]
|
|
136
|
+
- Union[Mapping[Any, Union[int, float]], pd.DataFrame, pd.Series]:以值为键,计数/百分比为值的字典、DataFrame或Series
|
|
134
137
|
|
|
135
138
|
示例:
|
|
136
139
|
>>> stats.value_counts("status")
|
|
@@ -151,7 +154,7 @@ class DataFrameStatistics:
|
|
|
151
154
|
false_mask = self._false_mask
|
|
152
155
|
return _original_value_counts(
|
|
153
156
|
self._df, column, mode, sort, dropna,
|
|
154
|
-
conditions, logic, true_mask, false_mask
|
|
157
|
+
conditions, logic, true_mask, false_mask, return_type
|
|
155
158
|
)
|
|
156
159
|
|
|
157
160
|
|
|
@@ -164,8 +167,9 @@ class DataFrameStatistics:
|
|
|
164
167
|
conditions: Optional[Union[Tuple, List[Tuple]]] = None,
|
|
165
168
|
logic: str = "and",
|
|
166
169
|
true_mask: Optional[pd.Series] = None,
|
|
167
|
-
false_mask: Optional[pd.Series] = None
|
|
168
|
-
|
|
170
|
+
false_mask: Optional[pd.Series] = None,
|
|
171
|
+
return_type: Literal["dict", "df", "series"] = "dict"
|
|
172
|
+
) -> Union[Dict[Any, Union[int, float]], pd.DataFrame, pd.Series]:
|
|
169
173
|
"""
|
|
170
174
|
按指定列分组,对另一列进行聚合统计,自动使用内部掩码参数
|
|
171
175
|
|
|
@@ -180,9 +184,11 @@ class DataFrameStatistics:
|
|
|
180
184
|
- logic (str):逻辑操作类型,"and" 或 "or",默认为 "and"
|
|
181
185
|
- true_mask (pd.Series):初始True掩码,默认为None(使用内部缓存)
|
|
182
186
|
- false_mask (pd.Series):初始False掩码,默认为None(使用内部缓存)
|
|
187
|
+
- return_type (str):返回类型,支持 "dict"(字典)、"df"(DataFrame)和 "series"(Series),
|
|
188
|
+
默认为 "dict"。
|
|
183
189
|
|
|
184
190
|
返回:
|
|
185
|
-
- Dict[Any, Union[int, float]]
|
|
191
|
+
- Union[Dict[Any, Union[int, float]], pd.DataFrame, pd.Series]:以分组值为键,聚合结果为值的字典、DataFrame或Series
|
|
186
192
|
|
|
187
193
|
示例:
|
|
188
194
|
>>> stats.group_agg("category", "amount", "sum")
|
|
@@ -199,7 +205,7 @@ class DataFrameStatistics:
|
|
|
199
205
|
false_mask = self._false_mask
|
|
200
206
|
return _original_group_agg(
|
|
201
207
|
self._df, group_col, agg_col, agg_func, sort,
|
|
202
|
-
conditions, logic, true_mask, false_mask
|
|
208
|
+
conditions, logic, true_mask, false_mask, return_type
|
|
203
209
|
)
|
|
204
210
|
|
|
205
211
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: funcguard
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.43
|
|
4
4
|
Summary: FuncGuard是一个Python库,提供函数执行超时控制、重试机制、HTTP请求封装和格式化打印工具。
|
|
5
5
|
Home-page: https://github.com/tinycen/funcguard
|
|
6
6
|
Author: tinycen
|
|
@@ -542,7 +542,7 @@ print(f"当前价格: {current_price}, 变化: {price_change}") # 输出: 当
|
|
|
542
542
|
| 函数/类名 | 功能说明 | 文档 |
|
|
543
543
|
|-----------|----------|------|
|
|
544
544
|
| `pd_fill_na` / `pd_fill_nat` | 数据填充 | [查看](docs/pandas/fill.md) |
|
|
545
|
-
| `pd_convert_columns` / `pd_convert_decimal` / `pd_convert_numeric_series` / `pd_convert_str_datetime` / `pd_convert_datetime_str` | 类型转换 | [查看](docs/pandas/convert.md) |
|
|
545
|
+
| `pd_convert_columns` / `pd_convert_decimal` / `pd_convert_numeric_series` / `pd_convert_str_datetime` / `pd_convert_datetime_str` / `pd_convert_series` | 类型转换 | [查看](docs/pandas/convert.md) |
|
|
546
546
|
| `pd_load_json` | JSON解析 | [查看](docs/pandas/json.md) |
|
|
547
547
|
| `pd_filter` | 数据筛选 | [查看](docs/pandas/filter.md) |
|
|
548
548
|
| `pd_count` / `pd_value_counts` | 条件计数统计 | [查看](docs/pandas/count.md) |
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|