熊猫:将一列中的值分成几行

时间:2019-10-12 06:28:01

标签: python database pandas csv dataframe

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

样本数据集:

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

1 个答案:

答案 0 :(得分:2)

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

File tempFile = null;
try {
    String extension = "." + FilenameUtils.getExtension(file.getOriginalFilename()); // from apachi common io
    tempFile = File.createTempFile("temp", extension); // can pass the directory also as a third parameter
    file.transferTo(tempFile);
} catch (IOException e) {
    e.printStackTrace();
}

对于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")