gpt4 book ai didi

python - 数据框中的计算和删除/创建列

转载 作者:行者123 更新时间:2023-12-01 08:16:56 25 4
gpt4 key购买 nike

鉴于此示例数据框

           Base         Others     B1        B2      Date
ABC
Shop 83.04 82.70 0.000 0.000 01012019
Shop 83.04 82.71 0.000 0.000 01012019
Shop 83.02 82.70 0.000 0.000 02012019
Shop 83.02 82.69 0.167 0.000 02012019
Shop 82.98 82.67 0.227 0.000 03012019
Shop 77.94 77.66 0.640 0.054 03012019
Shop 77.45 77.16 0.354 0.020 04012019
Shop 72.81 72.58 0.125 0.076 04012019
Shop 72.81 72.57 0.012 0.003 05012019
Shop 72.81 72.57 0.000 0.000 05012019

我想做以下计算:

(B1-B2)*1000

并将结果放入名为“Cal”的新列中。同时,我想在计算后将 B1 和 B2 从数据框中删除。

明智地计算,我尝试过这条线:

cal_df = df.loc[((pd.to_numeric(df['B1']))-(pd.to_numeric(df['B2'])))*1000]

但是收到了一个显示数据帧值的 KeyError(实际上没有出现真正的错误语句)。

有人可以就此提出建议吗?也许我需要使用 numpy 或 groupby 函数?非常感谢。

最佳答案

使用pop对于提取列 - 减去后从原始 DataFrame 中删除:

df['new'] = (df.pop('B1') - df.pop('B2'))*1000

如果需要转换为数字和可能的一些非数字值:

df['new'] = (pd.to_numeric(df.pop('B1'), errors='coerce') - 
pd.to_numeric(df.pop('B2'), errors='coerce'))*1000

关于python - 数据框中的计算和删除/创建列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54928853/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com