重命名空白的第一列,并在使用Pandas进行绘图时正确获取x轴标签

时间:2018-12-23 14:28:31

标签: python pandas datetime matplotlib plot

我正在尝试使用熊猫绘制温度与时间的关系图。我要导入的CSV文件以制表符分隔。将CSV读入数据框后(如下所示),其中的第一列是日期和时间。该列没有名称。我尝试重命名该列,但看起来不可能。

此外,当我绘制温度与时间的关系图时,x轴上没有提及,但有一些滴答。同样需要帮助。

我的数据框如下所示,您可以看到第一列是日期时间,应该以列名作为时间,但是它为空!

                     reactorPressure   vacuumGauge   MFC1   MFC2 ...    rfFreq   crucTemp   vacPressure   \r
                                                                 ...                                        
2018-12-18 10:18:18             0.05  4.569000e-07   -0.4    0.0 ...    11.496      503.0                 \r
2018-12-18 10:18:28             0.12  4.616000e-07   -0.4    0.0 ...    11.481      509.0                 \r
2018-12-18 10:18:38             0.25  4.584000e-07   -0.4    0.0 ...    11.475      514.0                 \r
2018-12-18 10:18:48             0.20  4.622000e-07   -0.4    0.0 ...    11.481      519.0                 \r
2018-12-18 10:18:58             0.25  4.641000e-07   -0.4    0.0 ...    11.484      524.0                 \r

[5 rows x 12 columns]
Index(['reactorPressure', ' vacuumGauge', ' MFC1', ' MFC2', ' MFC3',
       ' rfVoltage', ' rfCurrent', ' rfPower', ' rfFreq', ' crucTemp',
       ' vacPressure', ' \r'],
      dtype='object')

为解决重命名问题,我尝试了

df.rename(columns={'':'Time'}, inplace=True)

,但是没有用,运行#print(df.head()命令时,看不到未命名的:0。

我尝试过

df.columns=['Time'] + df.columns.tolist()[1:]
print(df.columns)

,但这不是将名称添加到第0列,而是重命名了第1列。

我尝试删除列,然后使用

手动添加它们
df.read_csv('filename.csv',names=['Time', 'pressure',..])

也不起作用。它始终将第一列留为空白。 我的代码在下面!

import pandas as pd
from pandas import DataFrame
import matplotlib.pyplot as plt
import datetime
df = pd.read_csv('testfile3.csv',sep='\t',lineterminator='\n', index_col=0)
print(df.head())
df[' crucTemp'].plot()
plt.show()

感谢您的帮助!谢谢!我也可以在这里共享我的csv文件,但我不知道如何。如果您留下电子邮件地址,我可以给您发送此文件,或者,如果您告诉我如何,我可以上传该文件!

[https://i.stack.imgur.com/bpKgs.png][1]

图crucTemp Vs的链接(第一列日期和时间),在x轴上没有数字。老实说,我不在乎数据框没有第一列的名称,但是我需要在x轴上打印适当的数字。

1 个答案:

答案 0 :(得分:0)

那里一切都很好。第一个“无头”列是您的索引,通常只是一个计数器列,但是您通过在数据导入命令index_col=0中写入pd.read_csv()来明确地将第一个数据列设置为索引。

但是,该索引的类型仍然是字符串,因此熊猫(或底层的matplotlib)不了解该索引的计时性质。

df.index = pd.to_datetime(df.index)

应该有帮助。