python-3.x - 如何使用标签上索引的特定列中的值拆分字符串?
问题描述
我有以下数据
Index Data
0 100CO
1 50CO-50PET
2 98CV-2EL
3 50CV-50CO
. .
. .
. .
我必须创建将数据格式拆分为不同的列,每个列都有自己的标题和值,结果应如下所示:
Index Data CO PET CV EL
0 100CO 100 0 0 0
1 50CO-50PET 50 50 0 0
2 98CV-2EL 0 0 98 2
3 50CV-50CO 50 0 50 0
. .
. .
. .
数据不限于 CO/PET/CV/EL,将需要尽可能多的列,每个列显示其对应的值。
该.str.split('-', expand=True)
函数只会分隔数据并将所有第一个值保留在同一列中,并且不会重命名每一列。
有没有办法在python中实现这个?
解决方案
你可以这样做:
df.Data.str.split('-').explode().str.split(r'(?<=\d)(?=\D)',expand = True). \
reset_index().pivot('index',1,0).fillna(0).reset_index()
1 Index CO CV EL PET
0 0 100 0 0 0
1 1 50 0 0 50
2 2 0 98 2 0
3 3 50 50 0 0
推荐阅读
- selenium - 如何使用代理 .pac 文件配置 selenium java chrome webdriver 我收到 Err_Tunnel_connection_failed
- android - 如何以编程方式为 GridLayout 创建按钮
- android - 如果可能需要对数据库进行初始化/更新,如何从 Room 上的数据库提供转换后的 liveData?
- python-3.x - 如何在 GCP 中创建 env 文件?
- unity3d - TextMesh Pro 中每个字符外的正方形
- excel - Excel 女士在跨嵌套级别时出错
- php - 在 React 应用程序中上传的图像在上传后不会立即可用
- youtube-api - 在 YouTube Data API v3 中将视频设置为 Premiere
- pandas - 从 Pandas 数据框中删除特殊字符列表
- laravel - 如何在vuejs中更新具有活动状态的多个列