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系列应用()方法
下面的代码说明了如何将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 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()方法
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之间的区别
map | applymap | apply |
---|---|---|
只在系列中定义 | 只在数据框中定义 | 同时在系列和数据框中定义 |
接受字典、系列或可调用文件 | 只接受可调用文件 | 只接受可调用文件 |
Series.map() 一次对一个元素进行操作 | DataFrame.applymap() 一次对一个元素进行操作 | Dataframe一次对整个行或列进行操作,而Series.apply一次对一个元素进行操作。 |
缺少的值将在输出中被记录为NaN。 | 执行比apply()更好的操作。 | 适合于更复杂的操作和聚合。 |