【发布时间】:2021-02-18 01:59:50
【问题描述】:
我有一个用逗号分隔的数字列,现在应该将这些值拆分为新列。
Site UserId
ABC '456,567,67,96'
DEF '67,987'
新的 Dataframe 应该如下所示:
Site UserID UserId1 UserId2 UserId3 UserId4
ABC '456,567,67,96' 456 567 67 96
DEF '67,987' 67 987
POC '4321,96,912 4321 87 912
每列旁边还有一个空列,用于将数字与姓名和电话号码对应起来。 用户
UserId UserName PhoneNo
4321 EB_Meter 9980688666
987 EB_Meter987 9255488721
912 DG_Meter912 8897634219
567 Ups_Meter567 7263193155
456 Ups_Meter456 8987222112
96 DG_Meter96
67 DGB_Meter
所以最终的DataFrame是:
Values Value1 Name1 Phone1 Value2 Name2 Phone2 Value3 Name3 Phone3 Value4 Name4 Phone 4
'456,567,67,96' 456 Ups_Meter456 8987222112 567 Ups_Meter567 7263193155 67 DGB_Meter 96 DG_Meter96
'67,987' 67 DGB_Meter 987 EB_Meter987 9255488721
'4321,96,912 4321 EB_Meter 9980688666 96 DG_Meter96 912 DG_Meter912 8897634219
【问题讨论】:
-
这个问题和
this one有什么不同? -
您可以尝试
.str.split(expand=True)处理第一个问题,第二个问题使用.map处理每一列。 -
@MayankPorwal 当我使用“df.stack(dropna=False).map(s).unstack()”时出现以下错误-“重新索引仅对唯一值索引对象有效”虽然有没有重复的电话号码..
-
列的顺序在输出中重要吗?
-
@jezrael 我不认为列的顺序很重要
标签: python pandas numpy automation