Pandas中map、applymap和apply方法的区别

Pandas中map、applymap和apply方法的区别

Pandas库被广泛用于数据处理和分析。map(), applymap(), and apply() 方法是Python中Pandas库的方法。输出的类型完全取决于作为给定方法的参数的函数的类型。

什么是Pandas的apply()方法?

apply()方法可以应用于系列和Dataframes,根据提供的函数类型,一个函数可以应用于系列和单个元素。

语法: s.apply(func, convert_dtype=True, args=())

Pandas数据框架apply()方法

这个方法可以用在pandas Dataframe和系列上。作为参数传递的函数通常对行/列起作用。下面的代码说明了apply()方法如何在Pandas Dataframe上工作。

# Importing pandas library with an alias pd
import pandas as pd
 
# Dataframe generation
gfg_string = 'geeksforgeeks'
gfg_list = 5 * [pd.Series(list(gfg_string))]
 
gfg_df = pd.DataFrame(data = gfg_list)
print("Original dataframe:\n" + \
    gfg_df.to_string(index = False,
    header = False), end = '\n\n')
 
# Using apply method for sorting
# rows of characters present in
# the original dataframe
new_gfg_df = gfg_df.apply(lambda x:x.sort_values(), axis = 1)
 
print("Transformed dataframe:\n" + \
    new_gfg_df.to_string(index = False,
            header = False), end = '\n\n')

输出:

Pandas中map、applymap和apply方法的区别

Pandas系列应用()方法

下面的代码说明了如何将apply()方法用于Pandas系列。

# Importing pandas library with an alias pd
import pandas as pd
 
# Series generation
gfg_string = 'geeksforgeeks'
gfg_series = pd.Series(list(gfg_string))
print("Original series\n" +
      gfg_series.to_string(index=False,
                           header=False), end='\n\n')
 
# Using apply method for converting characters
# present in the original series
new_gfg_series = gfg_series.apply(str.upper)
print("Transformed series:\n" +
      new_gfg_series.to_string(index=False,
                               header=False), end='\n\n')

输出:

Pandas中map、applymap和apply方法的区别

什么是Pandas applymap()方法

applymap()方法只对pandas Dataframe起作用,其中一个函数被单独应用于每个元素。作为参数传递的函数通常对Dataframe的元素起作用 applymap(),通常用于元素的操作。

# The code below illustrates how applymap
# method works on pandas Dataframe:
# Importing pandas
import pandas as pd
 
# DataFrame generation
gfg_string = 'geeksforgeeks'
gfg_list = 5 * [pd.Series(list(gfg_string))]
gfg_df = pd.DataFrame(data=gfg_list)
 
print("Original dataframe:\n" +
      gfg_df.to_string(index=False,
                       header=False), end='\n\n')
 
# Using applymap method for transforming
# characters into uppercase characters
# present in the original dataframe
new_gfg_df = gfg_df.applymap(str.upper)
print("Transformed dataframe:\n" +
      new_gfg_df.to_string(index=False,
                           header=False), end='\n\n')

输出:

Pandas中map、applymap和apply方法的区别

什么是Pandas的map()方法

map()方法只对pandas系列起作用,其中要应用的操作类型取决于作为函数、字典或列表传递的参数。这个方法一般用于映射两个系列的值,其中一列是相同的。

# The code below illustrates how the
# map method works on the Pandas series:
# Importing pandas
import pandas as pd
 
# Series generation
gfg_string = 'geeksforgeeks'
gfg_series = pd.Series(list(gfg_string))
print("Original series\n" +
      gfg_series.to_string(index=False,
                           header=False), end='\n\n')
 
# Using apply method for converting characters
# present in the original series
new_gfg_series = gfg_series.map(str.upper)
print("Transformed series:\n" +
      new_gfg_series.to_string(index=False,
                               header=False), end='\n\n')

输出:

Pandas中map、applymap和apply方法的区别

Pandas中map、applymap和apply之间的区别

map applymap apply
只在系列中定义 只在数据框中定义 同时在系列和数据框中定义
接受字典、系列或可调用文件 只接受可调用文件 只接受可调用文件
Series.map() 一次对一个元素进行操作 DataFrame.applymap() 一次对一个元素进行操作 Dataframe一次对整个行或列进行操作,而Series.apply一次对一个元素进行操作。
缺少的值将在输出中被记录为NaN。 执行比apply()更好的操作。 适合于更复杂的操作和聚合。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程