这是this question的多索引版本。你知道吗
考虑一下DataFrame
的销售数字:
sales = pd.DataFrame({'year':[2008,2008,2008,2008,2009,2009,2009,2009],
'flavour':['strawberry','strawberry','banana','banana',
'strawberry','strawberry','banana','banana'],
'day':['sat','sun','sat','sun','sat','sun','sat','sun'],
'sales':[10,12,22,23,11,13,23,24]})
sales = sales.set_index(['year','flavour','day'])
>>> sales
year flavour day
2008 strawberry sat 10
sun 12
banana sat 22
sun 23
2009 strawberry sat 11
sun 13
banana sat 23
sun 24
现在我想把每个数字乘以一个不同的数字,取决于年份和日期,存储为Series
:
>>> sales = pd.DataFrame([[2008, 'sat', 0], [2008, 'sun', 1], [2009, 'sat', 2], [2009, 'sun', 3]])
>>> sales = sales.set_index([0, 1])
2
0 1
2008 sat 0
sun 1
2009 sat 2
sun 3
有没有一种简洁的方法将sales
中的每个数字乘以它的相关元素mul
?这是SQL中非常常见的操作。你知道吗
混淆可能是销售是(不必要的)一个数据帧,我相信这只适用于系列。使用.squeeze()进行如下转换:
似乎您正在为被乘数的每一侧定义
sales
。因此,将第二部分定义为m
(并命名索引的级别)。你知道吗简单合并
套
重置索引
这项工作正在进行中,但仍然是一个悬而未决的问题。见here。这个soln实际上只是将这个soln嵌入广播数字中(例如mul/add…)。你知道吗
相关问题 更多 >
编程相关推荐