我是在python中使用熊猫的学习者。
我收到了以csv格式从Vehicle接收到的数百万个驾驶数据信号。 示例:不同时间间隔的车速,制动压力等
样本数据:(仅供参考,我仅使用2个Data_Names和样本值)
Time Data_Name Values
0.5 Vehicle_Speed 10
1 Brake_Pressure 12
2 Vehicle_Speed 30
3 Vehicle_Speed 40
4 Vehicle_Speed 50
5 Brake_Pressure 10
6 Brake_Pressure 15
7 Vehicle_Speed 30
8 Brake_Pressure 15
9 Brake_Pressure 20
10 Vehicle_Speed 25
要求:
第一个要求是:我希望以上数据采用以下格式。
Time Vehicle_Speed_Values Brake_pressure_Value
0.5 50 0
1 0 12
2 30 0
3 40 0
4 50 0
5 0 10
6 0 15
7 30 0
8 0 15
9 0 20
10 25 0
第二个要求:通过填充对应于时间的零值在其中进行插值。 第三件:绘制Vehicle_Speed(Vs)制动压力图以进行比较
我的代码:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# Time Data
b1 = pd.Dataframe([0.5,2,3,4,7,25])
# Vehicle_Speed_Values
b2 = pd.Dataframe([50,30,40,50,30,25])
# Combine two data frames
d1 = pd.concat([b1,b2], axis=1)
# Name the columns
d1.columns = ["Time","Speed"]
# Create a new data frame with column Names as Vehicle_Speed_Values& Brake_pressure_Value filled with zeros
a = pd.Dataframe([0.5,1,2,3,4,5,6,7,8,9,10])
a.columns = ["Time"]
alength = len(a["Time"])
a["Vehicle_Speed_Values"] = pd.Series(np.zeros(alength), index =a.index)
a["Brake_pressure_Value"] = pd.Series(np.zeros(alength), index =a.index)
# using for loop and index functions copy the value from d1 (data frame)to a (dataframe)
for i in range(len(d1.index)):
if d1.Time[i] in a["Time"]:
j = d1.Time[i]
find_index = a.loc[a["Time"] == j].index[0]
a.Vehicle_Speed_Values[find_index] = d1.Speed[i]
面临的问题: 执行时显示警告消息。(SettingWithCopyWarnings) 即使我得到了预期的结果,但对于1000万个值的大数据集,仍显示警告消息,我无法继续进行操作。
请求:
我不是一个好的编码员,无论如何我都相信会有一些简单的方法可以完成上述过程。 请阐明一些避免这种问题的方法或一种新的解决方法...