繁体   English   中英

使用 Pandas 计算列值之间的差异

[英]Using Pandas to calculate the difference between column values

我有一个 csv 有两列,我已读入数据框的日期和利润/损失。

import os
import csv
import pandas as pd
cpath = os.path.join('..', 'Resources', 'budget_data.csv')
df = pd.read_csv(cpath)
df["Profit/Losses"]= df["Profit/Losses"].astype(int)

我想知道每个月的盈亏差异(每行是一个月),所以想用 df.diff 来计算值

df.diff()

然而,这会导致错误,因为我认为它也在尝试计算日期列,我不确定如何让它只计算利润和损失。

也许你可以这样做:

import pandas as pd
x = [[1,2], [1,2], [1,4]]

d = pd.DataFrame(x, columns=['loss', 'profit'])

d.insert(0, "diff", [d['profit'][i] - d['loss'][i] for i in d.index])

d.head()

给出:

差异

这是你想要的?

import pandas as pd

data = pd.DataFrame(
    [
        ["2019-01-01", 40],
        ["2019-02-01", -5],
        ["2019-03-01", 15],
    ],
    columns = ["Dates", "Profit/Losses"]
)

data.assign(Delta=lambda d: d["Profit/Losses"].diff().fillna(0))

产量

    Dates      Profit/Losses   Delta
0   2019-01-01  40             0
1   2019-02-01  -5             -45.0
2   2019-03-01  15             20.0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM