首页 > 解决方案 > 如何使用matplotlib绘制excel大数据集而不是从第一个索引开始

问题描述

我想用 Timestamp 和另一列绘制 excel 数据。x=时间 y='找到'

Excel 看起来像这样:

读入.xlsx:

Index    Timestamp              Find
0                             
1                              *useless information*
2        Timestamp             *useless information'  
3      2012-07-16 12:00:00      2,31
4      2012-07-16 12:05:00      2,33
5      2012-07-16 12:10:00      2,22
...
1447    2012-07-21 12:00:00     2,44

我试过以下代码:

import pandas as pd
import matplotlib.pyplot as plt

datei= pd.read_excel('Read_in.xlsx', sheet_name= 'Data')

daten=datei.filter(regex='Find')
Time=datei['Timestamp']
Time=Time.dropna(axis=0)
Time=Time.to_string()

x=Time
y= daten
plt.plot(x,y)

ValueError: x 和 y 必须具有相同的第一维,但具有形状 (1,) 和 (1448, 2)

![1]: https://i.stack.imgur.com/iP4To.jpg

标签: python-3.xpandasmatplotlib

解决方案


您可以使用to_datetimewitherrors='coerce'替换 nopn datetimelike 值到NaT,然后to_numeric替换,.

datei['Timestamp'] = pd.to_datetime(datei['Timestamp'], errors='coerce')
datei['Find'] = pd.to_numeric(datei['Find'].str.replace(',','.'), errors='coerce')
#if format of numbesr is 2.31 
#datei['Find'] = pd.to_numeric(datei['Find'], errors='coerce')
datei = datei.dropna()
print (datei)
            Timestamp  Find
3 2012-07-16 12:00:00  2.31
4 2012-07-16 12:05:00  2.33
5 2012-07-16 12:10:00  2.22

datei.plot(x='Timestamp', y='Find')

或者:

x=datei['Timestamp']
y= datei['Find']
plt.plot(x,y)

推荐阅读