以下是一个示例代码,用于按照百分比对非数字列值进行加权计算:
import pandas as pd
# 创建一个示例数据框
data = {'A': ['Cat', 'Dog', 'Cat', 'Dog', 'Cat'],
'B': [10, 20, 30, 40, 50],
'C': ['Red', 'Blue', 'Red', 'Blue', 'Red']}
df = pd.DataFrame(data)
# 定义每个分类的权重
weights = {'Cat': 0.5, 'Dog': 0.3}
# 创建一个新列,进行加权计算
df['Weighted'] = df['A'].map(weights) * df['B']
在上述示例中,我们首先创建了一个示例数据框 df
,其中包含了3列数据,其中一列是非数字列 A
。然后,我们定义了每个非数字分类的权重,存储在 weights
字典中。最后,我们使用 .map()
方法将 weights
字典中的权重映射到 df['A']
列上,并将结果与 df['B']
列相乘,得到加权后的结果,存储在新列 Weighted
中。
请注意,上述示例中的权重只是示意,实际应用中需要根据具体情况进行调整。另外,如果需要进行多列的加权计算,可以适当修改代码,例如使用 .apply()
方法来处理多列数据。