【问题标题】:Renaming blank first column and getting x axis labels right while plotting using Pandas使用 Pandas 绘图时重命名空白第一列并正确获取 x 轴标签
【发布时间】:2019-05-23 02:01:29
【问题描述】:

我正在尝试使用 pandas 绘制温度与时间图。我从中导入的 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() 命令时没有看到 Unnamed :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.没有图片链接。 2. 不要将数据、代码或类似的东西作为图像(链接)发布,但要以代码缩进、复制/粘贴文本的形式发布。谢谢你。在这种情况下,只需发布​​ csv 文件的前几行,以便人们可以直接看到您正在处理的内容。

标签: python pandas datetime matplotlib plot


【解决方案1】:

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

但是,这个索引的类型仍然是字符串,所以 pandas(或底层的 matplotlib)不知道这个索引的时间性质。

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

应该有帮助。

【讨论】:

  • @SpghttdCd 谢谢,我花了一天时间才意识到这一点。现在可以正常使用了!
猜你喜欢
  • 2015-10-10
  • 1970-01-01
  • 2023-03-12
  • 1970-01-01
  • 2020-12-30
  • 1970-01-01
  • 1970-01-01
  • 2021-11-08
  • 1970-01-01
相关资源
最近更新 更多