如何根据输入的 python 数据框绘制线图?

数据挖掘 Python
2022-02-15 09:06:30

我需要帮助来使用数据框中的 3 个不同列创建绘图。我的数据框如下所示:

index      CMPGN_NM  COST_SUM    SUMRY_DT

2   GSA_SMB_SMB_Generic_BMM      8985  2018-05-17

3   GSA_SMB_SMB_Generic_BMM      7456  2018-05-18

4   GSA_SMB_SMB_Generic_BMM      5761  2018-05-19

10  GSA_SMB_SMB_Generic_BMM      4251  2018-05-20

5   GSA_SMB_SMB_Generic_BMM     10521  2018-05-21

6   GSA_SMB_SMB_Generic_BMM     10216  2018-05-22

7   GSA_SMB_SMB_Generic_BMM     11023  2018-05-23

9   GSA_SMB_SMB_Generic_BMM     11242  2018-05-24

8   GSA_SMB_SMB_Generic_BMM      8817  2018-05-25

1   GSA_SMB_SMB_Generic_BMM      6937  2018-05-26

0   GSA_SMB_SMB_Generic_BMM      4581  2018-05-27

我希望输出如下图所示

在此处输入图像描述

2个回答

这是一个解决方案:

我创建了一个带有一些任意值的示例数据框。这里是:

import pandas as pd
import numpy as np
from datetime import datetime

test = pd.read_csv('/home/sagar/Desktop/test.csv')
# Convert your date from 'str' to 'datetime' format
test['SUMRY_DT'] = test['SUMRY_DT'].map(lambda x: datetime.strptime(x, '%Y-%m-%d'))
# Set it as your dataframe index
test.set_index('SUMRY_DT', inplace=True)
test
            CMPGN_NM                    COST_SUM
SUMRY_DT        
2018-05-17  GSA_SMB_SMB_Generic_BMM     8985
2018-05-18  GSA_SMB_SMB_Generic_BMM     7456
2018-05-19  GSA_SMB_SMB_Generic_BMM     5761
2018-05-20  GSA_SMB_SMB_Generic_BMM     4251
2018-05-21  GSA_SMB_SMB_Generic_BMM     10521
2018-05-22  GSA_SMB_SMB_Generic_BMM     10216
2018-05-23  GSA_SMB_SMB_Generic_BMM     11023
2018-05-24  GSA_SMB_SMB_Spark           11242
2018-05-25  GSA_SMB_SMB_Generic_BMM     8817
2018-05-26  GSA_SMB_SMB_Generic_BMM     6937
2018-05-27  GSA_SMB_SMB_Generic_BMM     4581
2018-05-10  GSA_SMB_SMB_Spark           7089
2018-05-13  GSA_SMB_SMB_Spark           2121
2018-05-11  GSA_SMB_SMB_Spark           234
2018-05-12  GSA_SMB_SMB_Spark           11077

# Plot your data
test.groupby('CMPGN_NM')['COST_SUM'].plot(legend=True)

这就是您的图表在给定数据下的外观

使用实际数据,您的图表将类似于您提供的图片。

希望这可以帮助。

非常感谢 Sagar 对代码的回复。我能够按预期组合并得到结果...这是代码...#working with 3 columns dataframe

将 matplotlib.pyplot 导入为 plt 导入日期时间 将 pandas 导入为 pd

火花数据框到熊猫数据框

tt=df.toPandas()

将列转换为 int

tt["COST_SUM"] = tt["COST_SUM"].astype(int)

日期作为索引

tt["SUMRY_DT"] = pd.to_datetime(tt.SUMRY_DT) tt.set_index('SUMRY_DT', inplace=True)

风格

plt.style.use('seaborn-darkgrid') 无花果,ax = plt.subplots()

tt.groupby('CMPGN_NM')['COST_SUM'].plot(title='Cost by Campaign',ax=ax, legend=True,marker = 'o')

ax.legend(fontsize='small') plt.xticks(rotation=45)

输出位置

plt.savefig('/tmp/kenshoo/GRAPH1.pdf')

在此处输入图像描述