【发布时间】:2021-04-01 03:24:48
【问题描述】:
我是 python 编程的新手。我处理的数据是在单个超集(即列/属性)中获得某些属性的子集(使用非字母数字分隔符)。
代表性数据:
| col1 | col2 | col3 |
|---|---|---|
| 1 | x/x/z/z/z | i\i\i\j |
| 2 | y/y/z/w/w/w | k\k\i |
首选输出:
| col1 | w_col2 | x_col2 | y_col2 | z_col2 | i_col3 | j_col3 | k_col3 |
|---|---|---|---|---|---|---|---|
| 1 | 0 | 2 | 0 | 3 | 3 | 1 | 0 |
| 2 | 3 | 0 | 2 | 1 | 1 | 0 | 2 |
我通常做什么:
- 为此类列查找唯一条目
- 单独拆分所有此类列;应用列前缀(可选);存储为新数据框
- 在轴 1 上应用 value_counts()
- 与原始数据框连接
幸运的是,数据集很小,可以处理已知的列。但是,我想知道是否有更好(紧凑)的方法来解决这个问题。
编辑:
- 添加了新列,其中值将被视为(转换)为数字(因为它们是计数)
| col1 | col2 | col3 | col4 | col5 |
|---|---|---|---|---|
| 1 | x/x/z/z/z | i\i\i\j | 0-2-4-2 | 1_2_5_3 |
| 2 | y/y/z/w/w/w | k\k\i | 1-3-2-2 | 4_1_3_4 |
新的首选输出:
| col1 | w_col2 | x_col2 | y_col2 | z_col2 | i_col3 | j_col3 | k_col3 | 0_col4 | 1_col4 | 2_col4 | 3_col4 | 0_col5 | 1_col5 | 2_col5 | 3_col5 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 0 | 2 | 0 | 3 | 3 | 1 | 0 | 0 | 2 | 4 | 2 | 1 | 2 | 5 | 3 |
| 2 | 3 | 0 | 2 | 1 | 1 | 0 | 2 | 1 | 3 | 2 | 2 | 4 | 1 | 3 | 4 |
【问题讨论】: