我有一个如下所示的Csv文件
| 时间|计数|操作|
| - ------| - ------| - ------|
| 十点零一分|第二章|向上|
| 十点零一分|五个|向下|
| 十点零一分|1个|向下|
| 十点零一分|第二章|向上|
| 十点零一分|1个|向上|
| 十点零二分|三个|向下|
| 十点零二分|第二章|向上|
| 十点零二分|五个|向下|
我想用operations列的id将每分钟的count列的值相加,然后在同一分钟内将up和down的总和相减,结果如下所示Sum()
:
| 时间|计数|操作|
| - ------| - ------| - ------|
| 十点零一分|五个|向上|
| 十点零一分|六个|向下|
| 十点零二分|第二章|向上|
| 十点零二分|八个|向下|Diff()
:
| 时间|德尔塔|
| - ------| - ------|
| 十点零一分|1个|
| 十点零二分|六个|
为了做到这一点,我尝试了以下方法
def Delta_Volume():
df = pd.read_csv(Ex_Csv, usecols=['Time','Count','Operation'], parse_dates=[0])
df['Time'] = df['Time'].dt.floor("T", 0).dt.time
df1 = df.groupby('Operation').sum('Count')
df2 = df.groupby('Operation').diff('Count')
#df['Delt_of_row'] = df.loc[1 : 3,['Count' , 'Operation']].sum(axis = 1)
#df['Delt_of_row'] = df.loc[1 : 3,['Count' , 'Operation']].diff(axis = 1)
print(df1)
但不幸的是,它并没有按照我需要的方式工作
2条答案
按热度按时间ff29svar1#
您可以从经典的
GroupBy.sum
开始,然后使用MultiIndex计算差值:输出:
rdrgkggo2#
出局