【问题标题】:Month, Year with Value Plot, Pandas and MatPlotLib带有值图、Pandas 和 MatPlotLib 的月、年
【发布时间】:2021-06-03 00:55:57
【问题描述】:

我正在尝试绘制一个时间图,其中结合了 x 和 y 的月份和年份。 Python 正在读取带小数点的 Excel 数据,因此不允许转换为 %m %Y。有什么想法吗?

MY EXCEL DATA

How python reads my data

0     3.0-2015.0
1     5.0-2015.0
3     6.0-2017.0
     ...
68       nan-nan
69       nan-nan
70       nan-nan
71       nan-nan'


# Code

import plotly
import plotly.graph_objects as go
import matplotlib.pyplot as plt
import pandas as pd
import math

 # Set Directory
workbook1 = 'GAP Insurance - 1.xlsx'
workbook2 = 'GAP Insurance - 2.xlsx'
workbook3 = 'GAP Insurance - 3.xlsx'

df = pd.read_excel(workbook1, 'Sheet1',)

# Set x axis


df['Time'] = (df['Month']).astype(str)+ '-' + (df['Year']).astype(str)
df['Time'] = pd.to_datetime(df['Time'], format='%m-%Y').dt.strftime('%m-%Y')

【问题讨论】:

    标签: python excel pandas plot graph


    【解决方案1】:

    您可以尝试在此行中转换为“str”之前先转换为“int”:

    df['Time'] = (df['Month']).astype(str)+ '-' + (df['Year']).astype(str)
    

    这应该确保存储的内容不包括小数点。

    【讨论】:

    • 我收到“无法将浮点 NaN 转换为整数”错误
    • 您对此做什么将取决于您希望如何处理月份/年份有 NaN 的情况。您想在 x 轴的哪个位置绘制它?例如,作为第一步,您可以将 NaN 替换为在绘图上下文中有意义的数值。或者从数据框/绘图中完全排除这些行。
    猜你喜欢
    • 1970-01-01
    • 2019-02-21
    • 1970-01-01
    • 2021-03-16
    • 2017-08-22
    • 2019-05-22
    • 1970-01-01
    • 2021-10-16
    相关资源
    最近更新 更多