如何用字典值划分每一行pandas数据帧?

时间:2017-09-24 18:00:29

标签: python pandas dictionary

我有一个pandas数据框const myArray = [ { id: 'a', label: 'A' }, { id: 'b', label: 'B' }, ... ]; ,它有两列dfsales。我创建了按年份字典year创建的销售字典,该字典按年份分组time_series_sales,然后将该年度的所有销售额相加

df

我现在想要将# df = +-------+------+ | sales | year | +-------+------| | 1980 | 0.4 | | 1981 | 2.1 | | 1980 | .... | +-------+------+ time_series_sales = dict(df.groupby(['year'])['sales'].sum()) print(time_series_sales) >>> {1980.0: 11.379999999999999, 1981.0: 35.77000000000001, ... 列除以sales中相应的year值。下面的代码有效,但使用了明确的for循环,所以它很慢。

time_series_sales

我希望我可以在这里使用一些pandas功能,或者使用for row,index in df.iterrows(): df.iloc[row,1] = df.iloc[row,1] / time_series_sales[df.iloc[row,0]] 将功能应用到.apply来执行此操作,但我还没有能够做到这一点。像下面这样的东西会很棒。

df

但我只使用此代码获得df['sales'] = df['sales'] / time_series_sales[df['year']]

TypeError

那么,是否有一些方法可以在不使用显式for循环的情况下执行此操作,可能使用pandas函数/方法?

0 个答案:

没有答案