maxframe.dataframe.DataFrame.mf.extract_kv#

DataFrame.mf.extract_kv(columns=None, kv_delim='=', item_delim=',', dtype='float', fill_value=None, errors='raise')#

将键值对表示的列中的值提取到独立的列中。新列名将是键值列的名称后跟一个下划线和键。

参数:
  • columns (list, default None) -- 要提取的键值对列。

  • kv_delim (str, default '=') -- 键和值之间的分隔符。

  • item_delim (str, default ',') -- 键值对之间的分隔符。

  • dtype (str) -- 要生成的值列的类型。

  • fill_value (object, default None) -- 缺失键值对的默认值。

  • errors ({'ignore', 'raise'}, default 'raise') --

    • 如果为 'raise',则无效解析将引发异常。

    • 如果为 'ignore',则无效解析将返回输入。

返回:

提取的数据框

返回类型:

DataFrame

示例

>>> 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