Подзадайте фрейм данных в соответствии со значениями столбца [duplicate]

Если имена столбцов в файле файла .csv недопустимы R имя:

data <- read.csv("sample.csv",sep=";",head=TRUE)
data2 <- read.csv("sample.csv",sep=";",head=FALSE,nrows=1)

for ( i in seq(1,length( data ),1) ) plot(data[,i],ylab=data2[1,i],type="l")
7
задан smci 28 August 2015 в 07:24
поделиться

2 ответа

Вот автоматическая компоновка с большим количеством групп (случайных поддельных данных) и игра с grouped.get_group(key) покажет вам, как делать более элегантные сюжеты.

import pandas as pd
from numpy.random import randint
import matplotlib.pyplot as plt


df = pd.DataFrame(randint(0,10,(200,6)),columns=list('abcdef'))
grouped = df.groupby('a')
rowlength = grouped.ngroups/2                         # fix up if odd number of groups
fig, axs = plt.subplots(figsize=(9,4), 
                        nrows=2, ncols=rowlength,     # fix as above
                        gridspec_kw=dict(hspace=0.4)) # Much control of gridspec

targets = zip(grouped.groups.keys(), axs.flatten())
for i, (key, ax) in enumerate(targets):
    ax.plot(grouped.get_group(key))
    ax.set_title('a=%d'%key)
ax.legend()
plt.show()

enter image description here [/g0]

7
ответ дан cphlewis 24 August 2018 в 06:28
поделиться

Вы используете pivot, чтобы получить identifiers в столбцах, а затем построить график

pd.pivot_table(df.reset_index(),
               index='index', columns='identifier', values='value'
              ).plot(subplots=True)

enter image description here [/g0]

И вывод

pd.pivot_table(df.reset_index(),
               index='index', columns='identifier', values='value'
               )

Похож -

identifier        55        56        57
index
2007-01-01  0.781611  0.766152  0.766152
2007-02-01  0.705615  0.032134  0.032134
2008-01-01  0.026512  0.993124  0.993124
2008-02-01  0.226420  0.033860  0.033860
7
ответ дан Zero 24 August 2018 в 06:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: