本文目录一览:
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的类后也差不多: