我是Python的新手,我正在尝试复制我在SAS中习惯使用的功能。我想创建一个新变量(数据列),其中包含使用同一行(记录)的现有变量(数据列)进行计算的结果。我希望这个新变量成为现有数据集的一部分。经过大量研究,我找不到关于这个特定主题的任何内容。数据集源自包含两列数字数据的CSV文件,并且行大小不是先验可知的。我可以毫无问题地执行我需要的计算,但是尝试将数据集扩展到第三列,我可以在其中放置结果,这就是我遇到的问题。
import numpy as np
import pandas as pd
driver1_1_data = pd.read_csv(...)
for i in range(len(driver1_1_data.values[:,0])):
MPS = np.sqrt((driver1_1_data.values[i,0]-driver1_1_data.values[i-1,0])**2+(driver1_1_data.values[i,1]-driver1_1_data.values[i-1,1])**2)
答案 0 :(得分:1)
如果要计算特定要素(列)的值,可以使用pandas.DataFrame.apply()
功能。
例如你可以这样做:
driver1_1_data['New Calculated Col'] = driver1_1_data.apply(lambda: row: np.sqrt(row['col1']*row['col2']...))
此代码创建一个名为New Calculated Col
的新列,并使用您在apply(lambda...)
中指定的计算填充该列。显然你会根据你的需要调整lambda中的内容,但我认为这会让你朝着正确的方向前进。