首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Pandas进行简单的数据分析-如何删除重复代码

使用Pandas进行简单的数据分析-如何删除重复代码
EN

Stack Overflow用户
提问于 2020-04-02 23:09:08
回答 1查看 24关注 0票数 1

下面是一个例子:

代码语言:javascript
复制
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import matplotlib.dates as mdates
import matplotlib.ticker as ticker
import numpy as np

dfboth = {
        'I': [1,2,3,4,5,6],
        'S': ['X', 'Y', 'X', 'Y', 'X', 'Y'], 
        'DVAR': [800, 300, 820, 330, 910, 350], 
        'CVAR': [1001, 612, 990, 639, 600, 130]}

dfboth = pd.DataFrame(dfboth)
dfboth = dfboth.assign(DVARCHANGE=dfboth['DVAR'].diff(2))
dfboth = dfboth.assign(CVARCHANGE=dfboth['CVAR'].diff(2))

plt.rcParams["figure.figsize"] = (24, 9) # (w, h)

plt.subplot(2,2,1)
plt.plot('I','DVAR', data=dfboth[dfboth.S=="X"])
plt.plot('I','DVARCHANGE', data=dfboth[dfboth.S=="X"])
plt.title("X-D")
plt.legend()

plt.subplot(2,2,2)
plt.plot('I','DVAR', data=dfboth[dfboth.S=="Y"])
plt.plot('I','DVARCHANGE', data=dfboth[dfboth.S=="Y"])
plt.title("Y-D")
plt.legend()

plt.subplot(2,2,3)
plt.plot('I','CVAR', data=dfboth[dfboth.S=="X"])
plt.plot('I','CVARCHANGE', data=dfboth[dfboth.S=="X"])

plt.title("X-C")
plt.legend()

plt.subplot(2,2,4)
plt.plot('I','CVAR', data=dfboth[dfboth.S=="Y"])
plt.plot('I','CVARCHANGE', data=dfboth[dfboth.S=="Y"])
plt.title("Y-C")

plt.legend()

我有一系列的数据点(时间序列),I=1,2,3 ...在本例中,X和Y分别对应于某个“S”。对于每个读数,我们都有两个变量DVAR和CVAR。我正在试着做这张图

我比较了S,X和Y,DVAR和它在前一读数中的变化,以及CVAR和它在上一读数中的变化。

您还可以看到恼人的重复。但实际上我有12个S,不只是X和Y,我还有更多的变量。

我相信有一种比我使用堆叠索引或某种类型的数据透视表编写的更好的方法。但是我一直没能弄明白!

EN

回答 1

Stack Overflow用户

发布于 2020-04-03 00:18:32

您可以使用for-loop:

代码语言:javascript
复制
plot_titles = ["X-D", "Y-D", "X-C", "Y-C"]
y1 = ['DVAR', 'DVAR', 'CVAR', 'CVAR']
y2 = [y + 'CHANGE' for y in y1]
data1 = ["X", "Y", "X", "Y"]

for i in range(4):
    plt.subplot(2, 2, i+1)
    plt.plot('I', y1[i], data = dfboth[dfboth.S == data1[i]])
    plt.plot('I', y2[i], data = dfboth[dfboth.S == data1[i]])
    plt.title(plot_titles[i])
    plt.legend()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60994789

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档