Attribuer des couleurs de ligne dans les pandas

Je suis en train de tracer certaines données dans les pandas et intégré de la fonction plot idéalement parcelles d'une ligne par colonne. Ce que je veux faire, c'est attribuer manuellement chaque ligne d'une couleur basée sur une classification que je fais.

Les ouvrages suivants:

df = pd.DataFrame({'1': [1, 2, 3, 4], '2': [1, 2, 1, 2]})
s = pd.Series(['c','y'], index=['1','2'])
df.plot(color = s)

Mais quand mes indices sont des entiers, il ne fonctionne plus et le jette comme KeyError:

df = pd.DataFrame({1: [1, 2, 3, 4], 2: [1, 2, 1, 2]})
s = pd.Series(['c','y'], index=[1,2])
df.plot(color = s)

La façon dont je le comprends, c'est que quand un index entier est utilisé de toute façon il doit commencer à partir de 0. C'est mon sentiment depuis les travaux suivants: la

df = pd.DataFrame({0: [1, 2, 3, 4], 1: [1, 2, 1, 2]})
s = pd.Series(['c','y'], index=[1,0])
df.plot(color = s)

Ma question est:

  • Ce qui se passe ici?
  • En supposant que j'ai un index entier qui ne démarre pas à partir de 0 ou n'est pas formé d'une succession de numéros, comment puis-je faire ce travail sans avoir à convertir l'indice de chaîne ou de revisiter à partir de 0?

EDIT:

J'ai réalisé que, même dans le premier cas, le code ne fait pas ce que j'ai prévu de faire.
Il semble que les pandas correspond à l'indice de DataFrame et seulement si les deux sont des entiers indices en partant de 0. Si ce n'est pas le cas, un KeyError est jeté ou si l'index est un str l'ordre des éléments est utilisé.

Est-ce correct? Et est-il un moyen pour correspondre à la Série et DataFrame indices? Ou dois-je m'assurer de passer d'une liste de couleurs dans le bon ordre?

Vous ne voulez pas les indices de match. Vous êtes à la correspondance de la Série' l'Index pour le DataFrame de colonnes.

OriginalL'auteur GebitsGerbils | 2015-09-11