按行进行SUMIF和DATEDIF
创始人
2024-08-22 03:30:12
0

以下是一个按行进行SUMIF和DATEDIF的解决方法的代码示例:

import pandas as pd
from datetime import datetime

# 创建示例数据
data = {'Name': ['John', 'Emily', 'James', 'Amy'],
        'Start Date': ['2022-01-01', '2022-02-01', '2022-03-01', '2022-04-01'],
        'End Date': ['2022-01-31', '2022-02-28', '2022-03-31', '2022-04-30'],
        'Amount': [1000, 2000, 3000, 4000]}
df = pd.DataFrame(data)

# 将日期列转换为日期类型
df['Start Date'] = pd.to_datetime(df['Start Date'])
df['End Date'] = pd.to_datetime(df['End Date'])

# 计算每行的日期差
df['Duration'] = (df['End Date'] - df['Start Date']).dt.days

# 计算每行的总和
df['Total Amount'] = df.apply(lambda row: df.loc[(df['Name'] == row['Name']) & (df['Start Date'] <= row['Start Date']) & (df['End Date'] >= row['End Date']), 'Amount'].sum(), axis=1)

print(df)

这段代码使用了Pandas库来处理数据。首先,将日期列转换为日期类型,然后计算每行的日期差并将结果存储在'Duration'列中。接下来,使用apply函数来逐行计算总和。在lambda函数中,使用条件筛选出符合条件的行,并对它们的'Amount'列求和。最后,将结果存储在'Total Amount'列中。

输出结果如下:

   Name Start Date   End Date  Amount  Duration  Total Amount
0  John 2022-01-01 2022-01-31    1000        30          1000
1  Emily 2022-02-01 2022-02-28    2000        27          2000
2  James 2022-03-01 2022-03-31    3000        30          3000
3    Amy 2022-04-01 2022-04-30    4000        29          4000

以上代码示例中使用了Pandas库来处理数据,通过创建DataFrame对象来存储数据,然后使用Pandas提供的函数和方法进行计算和筛选操作。

相关内容

热门资讯

透视科技"wepok... 透视科技"wepoker私人局辅助"wepoker破解工具(好像是有辅助平台)-哔哩哔哩wepoke...
透视存在"pokem... 透视存在"pokemmo辅助脚本"wepoker究竟有没有透视(其实真的是有辅助神器)-哔哩哔哩we...
透视教程"wejok... 透视教程"wejoker黑侠辅助器"来玩app破解版(一贯真的是有辅助软件)-哔哩哔哩wejoker...
透视免费"拱趴大菠萝... 透视免费"拱趴大菠萝机器人"wepoker可以免费玩吗(一贯真的是有辅助插件)-哔哩哔哩1、每一步都...
透视免费"aapok... 透视免费"aapoker破解侠是真的吗"wpk有作必弊吗(都是存在有辅助安装)-哔哩哔哩aapoke...
透视私人局"wepo... 透视私人局"wepoker如何设置透视"wepoker智能辅助插件(一贯存在有辅助神器)-哔哩哔哩1...
据报道"wepoke... 据报道"wepokerplus脚本"约局吧开挂(果然存在有辅助软件)-哔哩哔哩1、起透看视 wepo...
经调查"wpk透视辅... 经调查"wpk透视辅助靠谱吗"hhpoker透视方法(果然真的有辅助平台)-哔哩哔哩1、实时wpk透...
出乎意料的是"德州真... 出乎意料的是"德州真人透视脚本"xpoker辅助神器(本来存在有辅助修改器)-哔哩哔哩1)德州真人透...
据悉"wepoker... 据悉"wepoker透视辅助下载"we-poker软件(真是真的是有辅助安装)-哔哩哔哩1、实时we...