我有下面的pandas.core.series.Series
Color
Red 4
Green 7和下面的多索引数据。我的目标是通过在Target中将Value除以相应的Color值,从而在pandas.core.series.Series中创建pandas.core.series.Series列。例如,第一行目标应该是12/4 = 3。
Value Target
Color Animal
Red Tiger 12 3
Tiger 24 6
Green Lion 21 3
Lion 35 5下面的尝试对于单个索引很好,但是对于带有错误Index._join_level on non-unique index is not implemented的多索引则失败
import pandas as pd
x = pd.Series([4,7], index=['Red','Green'])
x.index.name = 'Color'
dt = pd.DataFrame({'Color': ['Red','Red','Green','Green'], 'Animal': ['Tiger','Tiger','Lion','Lion'], 'Value': [12,24,21,35]})
dt.set_index(['Color','Animal'], inplace=True)
dt['Target'] = dt['Value'] / x.loc[dt.index.get_level_values('Color')]发布于 2018-09-09 19:14:20
只需使用index matching,因为您有具有相同标签的系列。
dt['Target'] = dt.Value/x
Value Target
Color Animal
Red Tiger 12 3.0
Tiger 24 6.0
Green Lion 21 3.0
Lion 35 5.0https://stackoverflow.com/questions/52247837
复制相似问题