我目前有一个这种格式的excel文件:
PS PSX1 PSX2 PSX3 PSX4
I P V I P V I P V I P V
States
Idle # # # # # # # # # # # #
Data=Addr(R) # # # # # # # # # # # #
Data=Addr(W) # # # # # # # # # # # #
. . . . . . . . . . . . .
. . . . . . . . . . . . .
当我尝试将其作为pandas数据框导入时,它会添加列名以给每个名称一个名称,而不仅仅是四个PSX1,PSX2,PSX3和PSX4。它还在空白处添加了NaN。当我尝试绘制图形时,这会成为一个问题,我收到一条错误说“#34;空的' DataFrame':没有数字数据可以绘制"。有没有办法跳过导入作为熊猫数据框,并在将其作为excel文件读取后直接绘制?
我希望图形为4行(每个电源一个),我只关心P列,x轴是不同的状态。我是matplotlib和python的新手。任何帮助表示赞赏。
答案 0 :(得分:1)
使用pandas清理数据。根据您的数据,这可以通过不同的方式实现。您可以使用pandas内置函数:
your_dataframe_here.dropna(inplace=True)
这将删除所有NaN值,但这不是最佳方法。您应该将NaN值替换为适当的值,可以是异常值,也可以是最接近值的平均值。
your_dataframe_here.fillna(value=-99999, inplace=True)
这会产生异常值,但是,如果有大量的NaN值,您应该用平均值替换以获得最佳结果。
your_dataframe_here.fillna(value=df['target_here'].mean())
或针对非目标:
your_dataframe_here.fillna(value=df.mean())
清理完数据后,您应该将功能分开并进行适当的绘制。此外,添加了列名称,因为熊猫的库需要它们。您可以将它们更改为您认为合适的方式:
your_dataframe_here.columns = ['your_column_name', 'your_column_name']
确保列表大小与数据框中的列数相匹配。最后,要严格访问“P'在列中,您可以对数据框进行子集化,例如:
your_P_set = your_data_frame['P']