split rows in pandas dataframe

后端 未结 4 763
無奈伤痛
無奈伤痛 2021-01-05 16:17

i stuck with the problem how to devide pandas dataframe by row,

i have similar dataframe with column where values separated by \\r\\n and they are in one cell,

4条回答
  •  轮回少年
    2021-01-05 17:03

    This might not be the most efficient way to do it but I can confirm that it works with the sample df:

    data = [['Green', 'Rectangle\r\nTriangle\r\nOctangle', 10], ['Blue', 'Rectangle\r\nTriangle', 15]]   
    df = pd.DataFrame(data, columns = ['Color', 'Shape', 'Price'])
    new_df = pd.DataFrame(columns = ['Color', 'Shape', 'Price'])
    
    for index, row in df.iterrows():
        split = row['Shape'].split('\r\n')
        for shape in split:
            new_df = new_df.append(pd.DataFrame({'Color':[row['Color']], 'Shape':[shape], 'Price':[row['Price']]}))
    
    new_df = new_df.reset_index(drop=True)
    print(new_df)
    

    Output:

       Color Price      Shape
    0  Green    10  Rectangle
    1  Green    10   Triangle
    2  Green    10   Octangle
    3   Blue    15  Rectangle
    4   Blue    15   Triangle
    

提交回复
热议问题