gpt4 book ai didi

python - Pandas:根据名称中的分隔符拆分多值列

转载 作者:太空宇宙 更新时间:2023-11-03 14:49:02 25 4
gpt4 key购买 nike

我有一个大型 Pandas 数据框,其中有许多多值列。这些列的名称中包含“/”,这些列中的值也由“/”分隔。下面是此类数据框的最小代表性示例。

        Name   North / South   East / West   No1 / No2 / No3
0 ABC 0 / 1 0 / 0 10 / 3 / 6
1 XYZ 1 / 0 0 / 1 4 / 5 / 6
2 PQR 1 / 0 0 / 1 3 / 6 / 6

我想拆分列。最简单的方法是创建一个新列,然后沿着索引的长度进行迭代,用沿着每个元素的分割字符串填充它。但我必须对所有多值列进行硬编码。

有更通用的方法吗?也许扫描 df.columns 然后如果一个元素包含“/”,运行另一个函数来分解该列?对于上述数据帧,所需的输出如下。

        Name  North  South  East  West  No1  No2  No3
0 ABC 0 1 0 0 10 3 6
1 XYZ 1 0 0 1 4 5 6
2 PQR 1 0 0 1 3 6 6

最佳答案

这是一种方法

In [1417]: pd.concat([s.str.split(' / ').apply(pd.Series, index=c.split(' / ')) 
for c, s in df.set_index('Name').iteritems()],
axis=1).reset_index()
Out[1417]:
Name North South East West No1 No2 No3
0 ABC 0 1 0 0 10 3 6
1 XYZ 1 0 0 1 4 5 6
2 PQR 1 0 0 1 3 6 6

关于python - Pandas:根据名称中的分隔符拆分多值列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46021230/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com