我正准备一些数据进行分析。数据包含来自不同传感器的带时间戳的污染测量值。为了获得对数据的感觉并确保我正确地得到数据并且其中没有很大的差距,我想不仅绘制污染,而且绘制时间戳的污染。我期望一个几乎完全相同的情节,就像仅绘制污染数据指数的情节,但在传感器无法工作的时期间存在小的差距。 不幸的是出了问题,两个情节完全不同。问题显然在于我绘制第二个图的方法。数据点以某种方式连接到第四和第四,整个事情没有任何意义。我如何让它工作?
这是产生情节的代码。
import matplotlib.pyplot as plt
import pandas
#load data set from csv
df = pandas.read_csv('csv_exports/measurements1207.csv')
#add column names to laoded data
df.columns = ['id', 'air_quality_index', 'from_date', 'latitude', 'longitude', 'pm_1',
'pm_10', 'pm_25', 'pollution_level', 'sensor_id', 'source', 'till_date',
'wind_deg', 'wind_speed']
df_pm = df[['sensor_id', 'from_date', 'pm_10', 'pm_25']]
#last 20 thousend pm10 and pm25 values
last_20k = df_pm.tail(20000)
print("first row example")
print(last_20k.iloc[0])
first_row_sensor_id = last_20k.iloc[0].loc['sensor_id']
one_sensor = df_pm.loc[df['sensor_id'] == first_row_sensor_id][['from_date', 'pm_10', 'pm_25']]
one_sensor = one_sensor.dropna()
one_sensor[['from_date']] = pandas.to_datetime(one_sensor['from_date'], format='%Y-%m-%d %H:%M:%S.%f')
#plot values
plt.plot(one_sensor[['pm_10', 'pm_25']])
plt.show() // first plot
plt.plot(one_sensor[['from_date']], one_sensor[['pm_10', 'pm_25']])
plt.show() // second faulty plot
答案 0 :(得分:0)
如@ImportanceOfBeingErnest的评论中所述,数据需要进行排序。只需在代码中添加这样的一行。
one_sensor = one_sensor.sort_values(['from_date'], ascending=[True])