您的位置:

关于python计算某列前后行差值的信息

本文目录一览:

python怎么计算同一列时间后一项减前一项

假设你原来的

list = [tim1,tim2,time3,tim4]

新的list

nlist = [list[i+1]-list[i] for i in range(len(list)-1)]

python的pandas怎么求列间差?

如果该列的时间是时间格式,如2020-6-19,则你可以

把这一列的时间类型转换成日期类型

单独取这一列出来,处理。即从第二个值开始,当位置的新前值=当前位置的值-前面一个的值,结果为一个时间段对象。

处理完成,再覆盖原来dataframe中已有的列即可。

python txt数据 作差

我的Python 版本为 : 3.6.2, 环境为 Windows 7

# -*- coding:utf-8 -*-

import os

initFile = './test.txt'

resultFile = './test1.txt'

def init():

print('初始化数据中, 请稍等....\n')

with open(initFile, 'w') as f:

initValue = 1

currentValue = 1

while(True):

if currentValue  10000: break

f.write(str(currentValue) + '\n')

currentValue += initValue

initValue += 1

print('初始数据文件已经生成成功, 它位于 [ {} ]\n' . format(initFile))

def action():

if not os.path.exists(initFile):

return print('初始文件不存在, 请选初始化数据\n')

print('这是所有式子 : \n')

with open(resultFile, 'w') as _f:

with open(initFile, 'r') as f:

mark = None

for line in f.readlines():

line = int(line.strip())

if mark == None:

mark = line

else:

print('{}-{}={}'.format(line, mark, line-mark))

_f.write(

str(line - mark) + '\n'

)

mark = line

print('结果文件已经成功生成, 它位于 [ {} ]\n' . format(resultFile))

def menu():

print('请选择你的需求 :')

id = int(input('1、初始化数据   2、已有数据, 生成结果\n'))

if (id == 1): init()

if (id == 2): action()

return menu() 

menu()

求python的list的差值

要完全避免for,连列表表达式中使用for都不可以的话,主要就靠functools的reduce了。

因为在排除for之后,简单直接的办法中,只有reduce是可以处理列表中连续两个元素的。

当然,也可以不用reduce,使用map也是可以的:

至于做成方法,定义一个基于list的类后也差不多: