【问题标题】:Pandas Dataframe subtracting float value from a columnPandas Dataframe 从列中减去浮点值
【发布时间】:2017-10-11 13:45:02
【问题描述】:

有没有办法从整列中减去一个常数值?

如果我的数据框是

我想从第 1 列中减去 2.5,使其显示为

另外,是否可以将日期+时间转换为分钟?

谢谢!

【问题讨论】:

  • 我认为你的照片倒退了。另外,你试过什么?
  • 为了减去常数值,我做了 df=df.sub(shift,axis='Distance) 但它给了我无效的语法
  • 你读过df.sub 做了什么吗?您想要Series.sub 或只是df['some_column'] - some_constant。您可能想阅读Pandas docs
  • 我试过这个 df['some_column'] - some_constant,它可以工作,只是我不知道如何将它放回数据框中。 df=read_data df=df['Distance']-2.5 df.to_csv(filename) 我知道我正在重写 df 以便它只导出移位的距离列。我怎么不这样做?并使用移位的距离导出整个数据帧
  • nvm 我明白了!谢谢

标签: python pandas subtraction date-math


【解决方案1】:

如果df 是您的数据框,只需使用

df.Distance += 2.5

用于添加常量,或

df.Distance -= 2.5

减去它。

(我不确定你想做哪一个。)

【讨论】:

    【解决方案2】:

    使用 .apply 始终是处理此类问题的快速方法

    #data.csv is you data
    import pandas as pd
    df = pd.DataFrame.read_csv('data.csv')
    
    #you want to perform this operation on column 1 that has a label 'A'
    #make a function
    def col_subtract(row):
        row['A'] = row['A'] - 2.5
        return row
    
    #apply the function to the dataframe
    df = df.apply(col_subtract, axis=1)
    

    doc

    注意:你也可以只传递一个 lambda 函数,我只是觉得创建一个正式的用户定义函数并用一个名称来强调你正在做的事情会更简洁。

    【讨论】:

    • 不!。使用apply 始终是处理此类事情的 方式。在这种情况下甚至没有意义,反正你是在 apply 内部进行矢量化操作。
    • 我刚刚使用了 depth=df['Distance']-62.981。然后将深度列添加到表的前面: df.insert(0,'Depth',depth) 谢谢!还有关于将时间操作到分钟的任何想法吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-02-01
    • 2022-01-10
    • 1970-01-01
    • 1970-01-01
    • 2017-04-29
    • 1970-01-01
    • 2017-12-17
    相关资源
    最近更新 更多