基本上,我是减去所有关于参考列的列,然后求和并平方这个值。有一列名为ReferenceSpeed
和speed1,speed2,speed3.....
我只是通过使用循环遍历每行并进行此更新来减去ReferenceSpeed
的所有速度(1,2,3…)。
然后求和并平方
我的Excel文件中的数据结构如下:
ReferenceSpeed speed1 speed2 speed3 .... speedn
63 78 56 87 ..........
54 56 45 98
. . . .
. . . .
. . . .
我需要一个简单的方法来做这件事。也许是一个小功能
这是我的密码:
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
speedlist=['ReferenceSpeed','speed1','speed2','speed3','speed4','speed5','speed6','speed7','speed8','speed9','speed10']
df = pd.read_csv('F:\\Python\\projects\\testdrivingcycles.csv',usecols=['position','ReferenceSpeed','speed1','speed2','speed3','speed4','speed5','speed6','speed7','speed8','speed9','speed10' ])
dict1={'ReferenceSpeed':0 ,'speed1':0 , 'speed2':0 ,'speed3':0 , 'speed4':0 ,'speed5':0 ,'speed6':0 , 'speed7':0 ,'speed8':0 ,'speed9':0 ,'speed10':0}
for speed in speedlist: #to itrrate through col
for ind in df.index: # to itrrate through rows and selects the data according to the index values.
dict1[speed] = dict1[speed] + (df['ReferenceSpeed'][ind]-df[speed][ind]) # to subtract the difference
dict1[speed] = dict1[speed] * dict1[speed] # to calculate square
print(dict1)
我的输出- {'ReferenceSpeed':0,'speed1':7056,'speed2':6400,'speed3':7225,'speed4':6561,'speed5':6241,'speed6':7056,'speed7':8281,'speed8':10201,'speed9':10609,'speed10':11025}
你不需要做所有的循环,这将是缓慢的。您已经在使用
pandas
和numpy
,因此请利用它们提供的矢量化的操作相关问题 更多 >
编程相关推荐