pandas 如何比较DataFrame中的两列,并根据比较结果更改第三列的值?

i7uq4tfw  于 2022-12-10  发布在  其他
关注(0)|答案(2)|浏览(177)

我有以下表格在Pandas:

index | project | category | period | update | amount
0     | 100130  | labour   | 202201 | 202203 | 1000
1     | 100130  | labour   | 202202 | 202203 | 1000
2     | 100130  | labour   | 202203 | 202203 | 1000
3     | 100130  | labour   | 202204 | 202203 | 1000
4     | 100130  | labour   | 202205 | 202203 | 1000

我的最终目标是得到一个按项目和类别分组的表,其中包含金额列的摘要,但只包含从更新月份到现在的摘要。例如,我将得到从202203到202205的摘要,项目100130和类别人工的摘要为3000。
作为第一步,我尝试以下条件:

for index, row in table.iterrows():
    if row["period"] < row["update"]
        row["amount"] = 0

但是:
1.此迭代不起作用
1.有没有一些简单而又不那么耗时的方法来做呢?因为我的表有超过60.000行,所以迭代可能不是一个好主意。

flseospp

flseospp1#

table["amount"] = 0 if table["period"] < table["update"] else None
zaqlnxep

zaqlnxep2#

我做了更多的研究,这段代码似乎解决了我的问题:

def check_update(row):
    if row["period"] < row["update"]:
        return 0
    else:
        return row["amount"]

table["amount2"] = table.apply(check_update, axis=1)

相关问题