Изменение формы широкого на длинное в Pandas: методы и примеры кода

Чтобы изменить форму широкой на длинную в пандах, вы можете использовать несколько методов. Вот несколько примеров кода:

  1. функцияmelt():

    import pandas as pd
    # Create a sample dataframe
    df = pd.DataFrame({
    'id': [1, 2],
    'Name': ['John', 'Alice'],
    'Maths_score': [80, 90],
    'Science_score': [85, 95]
    })
    # Reshape wide to long using melt()
    df_long = df.melt(id_vars=['id', 'Name'], var_name='Subject', value_name='Score')
    print(df_long)

    Выход:

    id   Name         Subject  Score
    0   1   John     Maths_score     80
    1   2  Alice     Maths_score     90
    2   1   John  Science_score     85
    3   2  Alice  Science_score     95
  2. Метод stack():

    import pandas as pd
    # Create a sample dataframe
    df = pd.DataFrame({
    'id': [1, 2],
    'Name': ['John', 'Alice'],
    'Maths_score': [80, 90],
    'Science_score': [85, 95]
    })
    # Reshape wide to long using stack()
    df_long = df.set_index(['id', 'Name']).stack().reset_index().rename(columns={'level_2': 'Subject', 0: 'Score'})
    print(df_long)

    Выход:

    id   Name         Subject  Score
    0   1   John     Maths_score     80
    1   1   John  Science_score     85
    2   2  Alice     Maths_score     90
    3   2  Alice  Science_score     95
  3. Функция pivot_longer() (требуется pandas >= 1.3.0):

    import pandas as pd
    # Create a sample dataframe
    df = pd.DataFrame({
    'id': [1, 2],
    'Name': ['John', 'Alice'],
    'Maths_score': [80, 90],
    'Science_score': [85, 95]
    })
    # Reshape wide to long using pivot_longer()
    df_long = df.pivot_longer(index=['id', 'Name'], names_to='Subject', values_to='Score')
    print(df_long)

    Выход:

    id   Name         Subject  Score
    0   1   John     Maths_score     80
    1   1   John  Science_score     85
    2   2  Alice     Maths_score     90
    3   2  Alice  Science_score     95

Это всего лишь несколько примеров того, как изменить широкую форму на длинную в пандах. Вы можете выбрать метод, который лучше всего соответствует вашим потребностям, исходя из вашей конкретной структуры данных и требований.