代码示例:
import pandas as pd
def mean_or_mode(df, col):
if df[col].dtype == 'object':
return df[col].mode()[0]
else:
return df[col].mean()
# 创建一个测试数据集
data = {'Name': ['Alex', 'Bob', 'John', 'Alex', 'Bob', 'Bob', 'Alex'],
'Age': [25, 30, 20, 25, 30, 30, 25]}
df = pd.DataFrame(data)
# 对df的'Age'列应用mean_or_mode()函数
result = mean_or_mode(df, 'Age')
print("数据类型为数值型时返回的值为:", result)
# 对df的'Name'列应用mean_or_mode()函数
result = mean_or_mode(df, 'Name')
print("数据类型为字符串型时返回的值为:", result)
输出:
数据类型为数值型时返回的值为: 26.428571428571427
数据类型为字符串型时返回的值为: Alex
解释:上述示例代码中,定义一个函数mean_or_mode()来实现根据数据类型返回平均值或众数的功能。当传递给函数的列的数据类型是字符串时,该函数返回该列的众数;当传递给函数的列的数据类型是数值型时,该函数返回该列的平均值。然后,通过使用示例数据集对该函数进行测试,并在控制台输出函数的返回结果。