Выберите значения по отношению к дате dataframe python 3 - PullRequest
0 голосов
/ 05 октября 2018

Я хотел бы суммировать значения в столбце прибыли относительно даты 2011 года. Как мне это сделать?

import pandas as pd

raw=pd.read_excel('D:\Python\Sample-Superstore-Subset-Excel.xlsx')
data=pd.DataFrame(raw)
df1=data[['Order Date','Region','Profit']]
collect=0
for index,row in df1.iterrows():
    if(row['Order Date']==(2011)):
         collect=collect+row['Profit']
    else:
         pass
print(collect)

Образец данных:

       Order Date   Region     Profit
      0 2012-05-28  Central     1.3200
      1 2010-07-07     West     4.5600
      2 2011-07-27     West   -47.6400
      3 2011-07-27     West   -30.5100
      4 2011-07-27     West   998.2023
      5 2011-11-09     West  1388.0523
      6 2013-07-01     West  1001.4453
      7 2010-12-13     West  4390.3665
      8 2012-05-12     West  -141.2600
      9 2011-05-26     West  1045.4673

1 Ответ

0 голосов
/ 05 октября 2018

Попробуйте этот код:

year=[value[0:4] for value in df["Order Date"]] #this returns only year values
df['year']=year #assigning the year values in the actual dataframe
df1=df.groupby(['year']).sum() #getting the total profit year wise
df1.rename(columns={'Profit': 'sum'}, inplace=True) #rename the column with sum
df2=pd.merge(df,df1,on='year') #combine the data frame
df2=df2.drop('year',axis=1) #drop the year column we created for calculation

df2 - это фрейм данных, который вы ищете.

, если вы хотите получить данные только за 2011 год, сделайте это перед тем, как опустить столбец года

df2=df2[df2.year=2011]
df2=df2.drop('year',axis=1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...