General data processing tool.
Project description
feilian
General data processing tool.
Features
- More default values, less necessary arg.
- Encapsulation of panda dataframe for simple usage.
Usage
Process data with pandas dataframe
Read a file as dataframe
import feilian
input_file = '' # file can be any csv, json, parquet or xlsx format
df = feilian.read_dataframe(input_file)
Write dataframe to a file
import feilian
import pandas as pd
df = pd.DataFrame(dict(a=[1, 2, 3], b=[4, 5, 6]))
output_file = '' # file can be any csv, json, parquet or xlsx format
feilian.save_dataframe(output_file, df)
Iter a dataframe with a progress bar
import feilian
import pandas as pd
df = pd.DataFrame(dict(a=[1, 2, 3], b=[4, 5, 6]))
feilian.iter_dataframe(data=df, progress_bar="process")
Extract sample from a dataframe
import feilian
import pandas as pd
df = pd.DataFrame(dict(a=[1, 2, 3], b=[4, 5, 6]))
sample = feilian.extract_dataframe_sample(size=2, shuffle=True)
Test text value in dataframe
import feilian
s = ''
# test if s is na or empty string
feilian.is_empty_text(s)
# test if s is not na and non-empty string
feilian.is_nonempty_text(s)
# test if s is na or blank string
feilian.is_blank_text(s)
# test if s is not na and non-blank string
feilian.is_non_blank_text(s)
Merge same id rows to one row
import feilian
import pandas as pd
df = pd.DataFrame([
{"a": "1", "b": "2", "c": "5"},
{"a": "2", "b": 6, "c": "8"},
{"a": "1", "b": 8, "c": "9"},
])
res = feilian.merge_dataframe_rows(df, col_id="a", join_sep=",")
IO for json file
Read a json file
import feilian
input_file = ''
data = feilian.read_json(input_file)
Write a json file
import feilian
data = [
{"a": "1", "b": "2", "c": "5"},
{"a": "2", "b": 6, "c": "8"},
{"a": "1", "b": 8, "c": "9"},
]
output_file = ''
feilian.save_dataframe(output_file, data)
Datetime format
import feilian
import datetime
d = datetime.datetime.now()
# format a date string
feilian.format_date(d, sep='-')
# format a time string
feilian.format_time(d, fmt='%H:%M:%S')
Process dict
Flatten dict value
import feilian
data = {
"a": 12,
"b": ["4", "s"],
"c": {
"l": 0,
"j": {
"se": "we",
"t": 5,
}
},
"f": 7,
"g": {
"ts": "9w",
"j2": 8,
},
"w": {
"s": {
"ge": 89,
"00": "ej",
},
"r": {
"le": 33,
"03": "ef",
}
},
"sk": {
"a": "23",
"b": {
"s": 9,
"g": 0,
"p": 4,
},
"c": {
"s": 8,
"t": "w",
"j": "23",
}
},
}
res = feilian.flatten_dict(data, frozen={"g", "w.s", "sk."}, exclude="f")
Process args
from feilian import ArgValueParser
value = ''
# split value
ArgValueParser.split_strs_to_list(value)
ArgValueParser.split_strs_to_set(value)
# bound value
ArgValueParser.bound_set_if_singleton(value)
ArgValueParser.bound_tuple_if_singleton(value)
ArgValueParser.bound_list_if_singleton(value)
# force value type
ArgValueParser.ensure_set(value)
ArgValueParser.ensure_list(value)
ArgValueParser.ensure_tuple(value)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
feilian-1.3.6.tar.gz
(14.6 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
feilian-1.3.6-py3-none-any.whl
(17.0 kB
view details)
File details
Details for the file feilian-1.3.6.tar.gz.
File metadata
- Download URL: feilian-1.3.6.tar.gz
- Upload date:
- Size: 14.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a6030355b3dee277f373ca4768abd039f23d60a0edf5f40680ff0933419437dd
|
|
| MD5 |
17be0089b4525aa8efe821168080cdbb
|
|
| BLAKE2b-256 |
dc90b72fb7496d10fc147f5a43c386b2eea1d33b8cc958390940048b1863ab81
|
File details
Details for the file feilian-1.3.6-py3-none-any.whl.
File metadata
- Download URL: feilian-1.3.6-py3-none-any.whl
- Upload date:
- Size: 17.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
420eb4c6f1a919ed1140a5ec5ed1030214916b74d66fab0aba2d9618d7409f3c
|
|
| MD5 |
d2566973fa3769ae5647c80743361774
|
|
| BLAKE2b-256 |
63abb3e9676bd1515b1b8783a6ae2de4540c5268a397d33ce5d77e3112eb5eb1
|