python - 使用唯一值列表 reshape pandas 数据框

标签 python pandas numpy

我有一个 12 行 3 列的数据框。 “名称”列上的每个值可能与“目标”列上的许多值相关联。对于每个值,还有一个关联的“val”,它是一个数字变量。 示例:

name  val target
a     6.3    la
b     3.5    le
c     10     li
d     8      lo
e     2.3    lu
f     5.6    lao
g     4.7    laoo
h     4.7    laooo
a     4.8    lo
j     1.2    le
b     1.5    re
k     9.8    la

我想使用“目标”列中的唯一值作为新列来 reshape 我的数据框,并将相应的“val”附加到每行。由于每个目标有不同数量的“val”,新数据帧应该用零填充空行。例如:

la     le     li     lo     lu    ...
6.3    3.5    10     8      2.3   ...
9.8    1.2     0     4.8    0     ...

我找到了一个可以做到这一点的脚本,但理解它在做什么非常复杂。是否可以使用 numpy 和/或 pandas 只需几行即可完成此操作?

最佳答案

x = pd.DataFrame.from_dict(
    df.groupby('target')['val'].apply(np.unique).to_dict(), 'index').T.fillna(0)

print(x)

输出:

    la  lao  laoo  laooo   le    li   lo   lu   re
0  6.3  5.6   4.7    4.7  1.2  10.0  4.8  2.3  1.5
1  9.8  0.0   0.0    0.0  3.5   0.0  8.0  0.0  0.0

关于python - 使用唯一值列表 reshape pandas 数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55170096/

相关文章:

python - 用其他数组给定的索引屏蔽一个数组

python - python 6 的奇怪问题 : cannot import urllib

python - 通过 pandas 进行时间序列

python - 附加数据帧列的模式仅在数据帧的第一行中创建值

python - 从数据框中的字符串中提取子字符串

python - 将函数创建的列附加到现有数据框

python - 如何为具有S形激活的简单神经网络进行反向传播?

python - 使用 Linux chmod 的权限

python - 将复数的 Pandas 数据框导出到excel

python - 将 numpy 数组存储在 pandas 数据框的多个单元格中(Python)