将N个元素拆分到Pandas的不同列中

f3temu5u  于 2023-01-15  发布在  其他
关注(0)|答案(1)|浏览(78)

我有这个问题,我试图解决。我有一个列,可以包括多个值在每个单元格。值是由逗号分隔。有没有一个动态的方式在Pandas分裂成3个不同的列,而保持主列的变化只有前3个值。
输入表:

Phone Number
    233,234,235,236,237,223
    214,226,290
    230,231,228,290,221
Output Table:
Phone Number                  Phone Number 1 Phone Number 2  Phone Number 3
233,234,235,236,237,223       233            234             235
214,226,290                   214,           226,            290
230,231                       230,           231

我需要在for循环中创建列,这样列的创建就可以是动态的。

xdyibdwo

xdyibdwo1#

您可以使用str.split和切片:

N = 3

df[[f'Phone Number {x+1}' for x in range(N)]] = (
    df['Phone Number'].str.split(',', n=N+1, expand=True).iloc[:, :N]
)

输出:

Phone Number Phone Number 1 Phone Number 2 Phone Number 3
0  233,234,235,236,237,223            233            234            235
1              214,226,290            214            226            290
2      230,231,228,290,221            230            231            228

其他示例:

Phone Number Phone Number 1 Phone Number 2 Phone Number 3
0  233,234,235,236,237,223            233            234            235
1              214,226,290            214            226            290
2                  230,231            230            231           None

相关问题