📜  使用 Pandas Melt 将宽数据帧重塑为带有标识符的整洁

📅  最后修改于: 2022-05-13 01:55:49.099000             🧑  作者: Mango

使用 Pandas Melt 将宽数据帧重塑为带有标识符的整洁

有时我们需要重塑 Pandas 数据框以更好地进行分析。重塑在数据分析中起着至关重要的作用。 Pandas 提供了诸如melt 和unmelt 之类的函数来重塑。在本文中,我们将看到什么是 Pandas Melt 以及如何使用它来将 Wide 重塑为带有标识符的 Tidy。

Pandas Melt(): Pandas.melt() 将 DataFrame 从宽格式逆透视为长格式。 Pandas Melt()函数用于将 DataFrame 设计从宽更改为长。它用于对 DataFrame 对象进行特定配置,其中至少有一个段作为标识符填充。所有其余的部分都被视为品质,不以线支点为中心,只有两个部分,可变的和有价值的。

示例 1:

Python3
# Load the libraries
import numpy as np
import pandas as pd
from scipy.stats import poisson
  
# We will use scipy.stats to create
# random numbers from Poisson distribution.
np.random.seed(seed = 128)
p1 = poisson.rvs(mu = 10, size = 3)
p2 = poisson.rvs(mu = 15, size = 3)
p3 = poisson.rvs(mu = 20, size = 3)
  
# Declaring the dataframe
data = pd.DataFrame({"P1":p1,
                 "P2":p2,
                 "P3":p3})
  
# Dataframe
print(" Wide Dataframe")
display(data)
  
data.melt()
  
# Change the names of the columns
data.melt(var_name = ["Sample"]).head()
  
# Specify a name for the values
print("\n Tidy Dataframe")
data.melt(var_name = "Sample",
          value_name = "Count").head()


Python3
import pandas as pd
  
  
data = pd.DataFrame({'Name': {0: 'Samrat', 1: 'Tomar', 2: 'Verma'},
                     'Score': {0: '99', 1: '98', 2: '97'},
                     'Age': {0: 22, 1: 31, 2: 33}})
  
pd.melt(data, id_vars=['Name'], value_vars=['Score'])
  
display(pd.melt(data, id_vars=['Name'], value_vars=['Score']))


输出:

说明:在本例中,我们使用泊松分布创建了三个数据集,并使用熊猫创建了一个数据框。然后使用melt()函数在两列中以长格式重构数据并重命名两列。默认情况下,第一列称为“变量”,它包含列/变量名称。第二列名为“value”,它包含来自宽格式数据框的数据。

示例 2:

蟒蛇3

import pandas as pd
  
  
data = pd.DataFrame({'Name': {0: 'Samrat', 1: 'Tomar', 2: 'Verma'},
                     'Score': {0: '99', 1: '98', 2: '97'},
                     'Age': {0: 22, 1: 31, 2: 33}})
  
pd.melt(data, id_vars=['Name'], value_vars=['Score'])
  
display(pd.melt(data, id_vars=['Name'], value_vars=['Score']))

输出:

说明:在本例中,我们使用 Pandas 创建了一个数据框。然后使用melt()函数,我们将长格式的数据改造成三列,并将名称指定为id,将变量指定为Score the person,将值指定为他们的分数。除了“id”列,第一列默认称为“变量”,它包含列/变量名称。第二列名为“value”,它包含来自宽格式数据框的数据。