【问题标题】:Select values in relation to date dataframe python 3选择与日期数据框python 3相关的值
【发布时间】:2018-10-05 03:28:02
【问题描述】:

我想对 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

【问题讨论】:

    标签: python-3.x loops dataframe


    【解决方案1】:

    试试这个代码:

    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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-10-25
      • 1970-01-01
      • 1970-01-01
      • 2017-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-28
      相关资源
      最近更新 更多