使用熔化和未熔化重塑Pandas数据框架

使用熔化和未熔化重塑Pandas数据框架

Pandas是一个用Python语言编写的开源、BSD许可的库。Pandas提供高性能、快速、易于使用的数据结构和数据分析工具,用于处理数字数据和时间序列。Pandas建立在Numpy库上,用Python、Cython和C等语言编写。2008年,Wes McKinney开发了Pandas库。在pandas中,我们可以从各种文件格式导入数据,如JSON、SQL、Microsoft Excel等。数据框架的功能是用来加载和对数据进行操作的。

有时我们需要重塑Pandas数据框架,以更好的方式进行分析。重塑在数据分析中起着至关重要的作用。Pandas提供了像融化和解除融化这样的功能来重塑。

Pandas.melt()

melt()用于将一个宽的数据框架转换为一个较长的形式。当有要求将特定的列作为一个标识符时,可以使用这个函数。

语法: pandas.melt(frame, id_vars=None, value_vars=None, var_name=None, value_name=’value’, col_level=None)

示例 1:

用有关 “DAYS”、”PATIENTS “和 “RECOVERY”的数据初始化数据框架。

# importing pandas library
import pandas as pd
  
# creating and initializing a list
values = [['Monday', 65000, 50000],
          ['Tuesday', 68000, 45000],
          ['Wednesday', 70000, 55000],
          ['Thursday', 60000, 47000],
          ['Friday', 49000, 25000],
          ['Saturday', 54000, 35000],
          ['Sunday', 100000, 70000]]
  
# creating a pandas dataframe
df = pd.DataFrame(values, columns=['DAYS', 'PATIENTS', 'RECOVERY'])
  
# displaying the data frame
df

输出:

使用熔化和未熔化重塑Pandas数据框架

现在,我们用pandas.melt()对 “DAYS “列周围的数据框进行重塑。

# melting with DAYS as column identifier
reshaped_df = df.melt(id_vars=['DAYS'])
  
# displaying the reshaped data frame
reshaped_df

输出:

使用熔化和未熔化重塑Pandas数据框架

示例 2:

现在,在上面使用的数据框架中引入了一个名为 “死亡 “的新列。

# importing pandas library
import pandas as pd
  
# creating and initializing a dataframe
values = [['Monday', 65000, 50000, 1500],
          ['Tuesday', 68000, 45000, 7250],
          ['Wednesday', 70000, 55000, 1400],
          ['Thursday', 60000, 47000, 4200],
          ['Friday', 49000, 25000, 3000],
          ['Saturday', 54000, 35000, 2000],
          ['Sunday', 100000, 70000, 4550]]
  
# creating a pandas dataframe
df = pd.DataFrame(values,
                  columns=['DAYS', 'PATIENTS', 'RECOVERY', 'DEATHS'])
  
# displaying the data frame
df

输出:

使用熔化和未熔化重塑Pandas数据框架

我们用pandas.melt()对 “PATIENTS “列周围的数据框进行重塑。

# reshaping data frame 
# using pandas.melt()
reshaped_df = df.melt(id_vars=['PATIENTS'])
  
# displaying the reshaped data frame
reshaped_df

输出:

使用熔化和未熔化重塑Pandas数据框架

Pandas.pivot()/ unmelt函数

透视、未熔化或反向熔化用于将一个有多个值的列转换为其自身的几个列。

语法 : DataFrame.pivot(index=None, columns=None, values=None)

示例 1:

创建一个包含6个学生的ID、姓名、分数和运动数据的数据框架。

# importing pandas library
import pandas as pd
  
# creating and initializing a list
values = [[101, 'Rohan', 455, 'Football'],
          [111, 'Elvish', 250, 'Chess'],
          [192, 'Deepak', 495, 'Cricket'],
          [201, 'Sai', 400, 'Ludo'],
          [105, 'Radha', 350, 'Badminton'],
          [118, 'Vansh', 450, 'Badminton']]
  
# creating a pandas dataframe
df = pd.DataFrame(values, 
                  columns=['ID', 'Name', 'Marks', 'Sports'])
  
# displaying the data frame
df

输出:

使用熔化和未熔化重塑Pandas数据框架

围绕柱子体育的未融化。

# unmelting
reshaped_df = df.pivot(index='Name', columns='Sports')
  
# displaying the reshaped data frame
reshaped_df

输出:

使用熔化和未熔化重塑Pandas数据框架

示例 2:

考虑一下上面的例子中使用的同一个数据框架。不熔化也可以基于一个以上的列进行。

reshaped_df = df.pivot('ID', 'Marks', 'Sports')
  
# displaying the reshaped data frame
reshaped_df

输出:

使用熔化和未熔化重塑Pandas数据框架

但是在索引方面,重塑后的数据框架与原始的数据框架看起来没有什么不同。为了获得与原始数据框架相同的索引,请在重塑的数据框架上使用reset_index()函数。

reshaped_df = df.pivot('ID', 'Marks', 'Sports')
  
# reseting index
df_new = reshaped_df.reset_index()
  
# displaying the reshaped data frame
df_new

输出:

使用熔化和未熔化重塑Pandas数据框架

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程