Pandas:将一列中的值分隔为多行

2024-09-30 06:21:25 发布

您现在位置:Python中文网/ 问答频道 /正文

如果一个列包含多个由,分隔的值,如何在不同的行中分隔它们

示例数据集:

name   age      taskID
----------------------------
AA      20      T01,T02
BB      22      T03,T02,T03
CC      24      T01,T05
DD      21      T02,T06 

输出:

name   age      taskID
-----------------------
AA      20      T01
AA      20      T02
BB      22      T03
BB      22      T02
CC      24      T01
CC      24      T05
CC      24      T03
DD      21      T02 
DD      21      T06

Tags: 数据name示例ageddaaccbb
1条回答
网友
1楼 · 发布于 2024-09-30 06:21:25

对于0.25及以上的熊猫,您可以使用

df = pd.DataFrame([['AA', '20', 'T01,T02'], ['BB', '22', 'T03,T02,T03'], ['CC', '24', 'T01,T05'], ['DD', '21', 'T02,T06']], columns=('name', 'age', 'taskID'))

df["taskID"] = df["taskID"].str.split(",")
df.explode("taskID")

对于0.25以下的熊猫

from itertools import chain
import numpy as np
import pandas as pd

df = pd.DataFrame([['AA', '20', 'T01,T02'], ['BB', '22', 'T03,T02,T03'], ['CC', '24', 'T01,T05'], ['DD', '21', 'T02,T06']], columns=('name', 'age', 'taskID'))
df["taskID"] = df["taskID"].str.split(",")

arr = np.repeat(df.iloc[:,:-1].values, df["taskID"].apply(len), axis=0)
df2 = pd.DataFrame(arr, columns=df.columns[:-1])
df2["TaskID"] = list(chain(*df["taskID"]))

df2

相关问题 更多 >

    热门问题