maxframe.dataframe.DataFrame.mf.extract_kv#
- DataFrame.mf.extract_kv(columns=None, kv_delim='=', item_delim=',', dtype='float', fill_value=None, errors='raise')#
将键值对表示的列中的值提取到独立的列中。新列名将是键值列的名称后跟一个下划线和键。
- 参数:
- 返回:
提取的数据框
- 返回类型:
示例
>>> import numpy as np >>> import maxframe.dataframe as md
>>> df = md.DataFrame({"name": ["name1", "name2", "name3", "name4", "name5"], ... "kv": ["k1=1.0,k2=3.0,k5=10.0", ... "k2=3.0,k3=5.1", ... "k1=7.1,k7=8.2", ... "k2=1.2,k3=1.5", ... "k2=1.0,k9=1.1"]}) >>> df.execute() name kv 0 name1 k1=1.0,k2=3.0,k5=10.0 1 name2 k2=3.0,k3=5.1 2 name3 k1=7.1,k7=8.2 3 name4 k2=1.2,k3=1.5 4 name5 k2=1.0,k9=1.1
要展开的字段名由列指定 kv_delim 用于分隔键和值,默认为 '=' item_delim 用于分隔键值对,默认为 ',' 输出字段名是原始字段名与键通过 "_" 连接 fill_value 用于填充缺失值,默认为 None
>>> df.mf.extract_kv(columns=['kv'], kv_delim='=', item_delim=',').execute() name kv_k1 kv_k2 kv_k3 kv_k5 kv_k7 kv_k9 0 name1 1.0 3.0 NaN 10.0 NaN NaN 1 name2 NaN 3.0 5.1 NaN NaN NaN 2 name3 7.1 NaN NaN NaN 8.2 NaN 3 name4 NaN 1.2 1.5 NaN NaN NaN 4 name5 NaN 1.0 NaN NaN NaN 1.1