gpt4 book ai didi

python - 如何将循环结果放入列表中?

转载 作者:太空宇宙 更新时间:2023-11-04 05:18:42 24 4
gpt4 key购买 nike

我有一个数据集:

   a        b      c
11/01/1999 8 367235
11/01/1999 5 419895
11/01/1999 1 992194
23/03/1999 4 419895
30/04/1999 1 992194
02/06/1999 9 419895
08/08/1999 2 367235
12/08/1999 3 419895
17/08/1999 10 992194
22/10/1999 3 419895
04/12/1999 4 992194
04/03/2000 2 367235
29/09/2000 9 367235
30/09/2000 9 367235

我正在尝试制作一个可视化图来显示随时间变化的值集(“b”列)(“a”列):

enter image description here

*请注意,这只是为了描绘我想要的一般图片 - 这不是我的数据集。

我将数据集更改为数据透视表,它在第一列中列出了列“c”值,在顶行列出了“a”值,在数据框中列出了“b”值。令人高兴的是,我已经能够从数据透视表中提取值的行,并将其用作 matplotlib 图(代表图表上的 y 值)的输入。不幸的是,我无法以可接受的格式提取数据透视表的标题,这是一个问题,因为标题代表我图表上的 x 值。

这是有效的代码部分:

from matplotlib import pyplot as plt
import numpy as np
import pandas as pd
from datetime import datetime

df = (pd.read_csv('orcs.csv'))
df_wanted = pd.pivot_table(
df,
index='c',
columns='a',
values='b')
lala = df_wanted.as_matrix()
x=np.array(lala[1,:])
y = (df_wanted.columns.astype(str).tolist())

这是代码中不起作用的部分。

我尝试了几种选择(包括错误消息):

1.

plt.plot(x,y)# error: could not convert string to float: '02/06/1999'

2.

for i in range(len(y)):
c= (y[i])
print(c) #no error message, but gives me an output I don't know how to capture for the plt.plot input.

3.

for i in range(len(y)):
c= (y[i])
f = datetime.strptime(c, '%d/%m/%Y')
v=list(f)
plot.plot(x,v) # error message:'datetime.datetime' object is not iterable

感谢任何帮助

最佳答案

您必须交换 indexcolumns,然后将 index 转换为 datetime。然后就是 .plot()

df_wanted = pd.pivot_table(df, columns='c',
index='a', values='b')
df_wanted.index = pd.to_datetime(df_wanted.index)
df_wanted.plot()

The picture obtained

关于python - 如何将循环结果放入列表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41055388/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com