Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 加载文件的打印中的标签错误_Python_Pandas_Dataframe_Matplotlib - Fatal编程技术网

Python 加载文件的打印中的标签错误

Python 加载文件的打印中的标签错误,python,pandas,dataframe,matplotlib,Python,Pandas,Dataframe,Matplotlib,是我的.dat文件。我想使用以下脚本绘制时间戳与GHI: import pandas as pd import matplotlib.pyplot as plt from pandas.plotting import register_matplotlib_converters register_matplotlib_converters() path = r'C:\Users\...' file = '\\File.DAT' df = pd.read_csv(path+file, sep=

是我的
.dat
文件。我想使用以下脚本绘制
时间戳
GHI

import pandas as pd
import matplotlib.pyplot as plt
from pandas.plotting import register_matplotlib_converters
register_matplotlib_converters()

path = r'C:\Users\...'
file = '\\File.DAT'

df = pd.read_csv(path+file, sep=',', header=0, skiprows=0)
df = df[['TIMESTAMP', 'GHI']]
df.drop([0,1], inplace=True)

df['TIMESTAMP'] = pd.to_datetime(df['TIMESTAMP'], dayfirst=True)
df.set_index('TIMESTAMP', inplace=True)

fig, ax = plt.subplots(figsize=(9,4))
ax.plot(df.index, df['GHI'])
plt.show()
但是,绘图是错误的(下图)。

如果数据帧
df
保存到.csv文件中,然后作为
df
重新加载,则使用相同的打印脚本,它将给出正确的结果(下图)。

我想知道为什么从读取.dat文件的
df
打印会给出错误的结果,而从读取.csv文件的
df
打印会给出正确的结果


有什么解决方案的建议吗?

当您读取dat文件时,信息将被解析为字符串。通过在终端
类型(df.GHI.iloc[0])
中输入以下命令,可以看到这一点

如果您将
GHI
列转换为浮动,那么您的绘图应该是正确的

ax.plot(df.index, df['GHI'].astype(float))

数据的问题在于前两行,这两行由一些元数据作为字符串组成。 因此,其余数据也作为字符串加载

"TIMESTAMP","GHI"
"TS","W/m2"
"","","Avg"
"2014-10-22 00:00:00",-0.4049856
...
删除这两行元数据后,需要正确转换列
GHI
的值格式。幸运的是,时间戳作为字符串是否被接受,可能会让您感到困惑

df.GHI=df.GHI.astype(float)
注意:
在第一个(错误的)绘图上,您只看到
GHI
中未排序的字符串列表为ylabel,有时出现相同的值。

文件的
.dat
是什么样子的?您是否检查了分隔符/数据条目?第一个情节中的所有黑色内容是什么?-alexandra,在第一段中,给出了文件的链接。它使用逗号分隔符(,)。y轴上的黑色部分是在第二个绘图中整齐显示的数据值。脚本显示使用数据框进行绘图。您还可以展示如何从dat文件“直接”绘图吗?最后一段中的问题是,coreectedIt看起来像
df['GHI']
在.dat文件中保存/读取时可能是字符串?是的,问题是因为数据类型应该是浮点。谢谢