假设我有下面的代码
import pandas as pd
import numpy as np
flag = pd.DataFrame({'flag': [ [], ['red'], ['red, green'], ['red, blue'], ['blue'] ]})
colors_values = pd.DataFrame({'red': [1, 1, 1, 1, 1], 'green': [2, 2, 2, 2, 2], 'blue': [4, 4, 4, 4, 4]})
第一节第一节第一节第一节第一次
我有一个名为“flag”的一维df,每行包含一个颜色列表(红、绿色、蓝),还有一个df“colors_values”包含这些颜色名称,它们有相同的行数。
我的目标是使用np.where返回基于'flag'的'colors_values'的每一行值的平均值。
如果有更好/更快的方法来代替使用np.where,我想知道。
4条答案
按热度按时间f0brbegy1#
您可以安排 Dataframe 之间匹配的颜色名称,如下所示:
c86crjj02#
Pandas合并是相当快的,如果你允许一个斜坡上升时间位,你可以做一个合并/分组:
3ks5zfa03#
快速解决方案
结果
bjg7j2ky4#
可以使用
str.get_dummies()
并乘以color_values
df输出: