2016-08-17 5 views
1

Ich habe eine Datenmenge, die Temperaturwerte hat entspricht, mit einer Säule CO2-rh genannt:Wie können Sie eine Elif-Funktion in einem Graphen ausführen?

import pandas as pd 
df=pd.read_csv('F:/data32.csv',parse_dates=['Date']) 
print (df) 
Temperature  unit  unit.1  CO2 flux.1 %Root Resp  CO2-Rh 
4.5    umol/m2/s mg/cm^2/h 0.001210  26.5 0.000889 
4.5    umol/m2/s mg/cm^2/h 0.001339  26.5 0.000984 
6.5    umol/m2/s mg/cm^2/h 0.001339  26.5 0.000984 
5.3    umol/m2/s mg/cm^2/h 0.001469  26.5 0.001080 
4.0    umol/m2/s mg/cm^2/h 0.001598  26.5 0.001175 
5.5    umol/m2/s mg/cm^2/h 0.001598  26.5 0.001175 
5.0    umol/m2/s mg/cm^2/h 0.001771  26.5 0.001302 
5.0    umol/m2/s mg/cm^2/h 0.001944  26.5 0.001429 
4.5    umol/m2/s mg/cm^2/h 0.003110  26.5 0.002286 
10.3   umol/m2/s mg/cm^2/h 0.001166  26.5 0.000857 
9.0    umol/m2/s mg/cm^2/h 0.002030  26.5 0.001492 

Ich habe eine Datenmenge, die entsprechenden Temperaturwerte aufweist, wobei eine Spalte namens CO2-RH. Ich möchte meiner Funktion mitteilen, meinen Datensatz nach der Durchschnittstemperatur zu teilen. Wenn die Temperatur über dem Wert von 8.21 liegt, möchte ich, dass die Daten in den Datensatz "a" gehen, während alles, was gleich oder kleiner als 8.21 ist Datensatz "b" (ich denke, das ist der beste Weg, zwei separate Graphen zu zeichnen). Was kann ich tun? Bis jetzt ist das was ich habe.

if df['Temperature']> 8.212312312312307: 
    plt.plot(df['Temperature'],df['CO2-rh'],linewidth=3) 
    plt.show() 

Antwort

1

Es sieht aus wie Bedarf boolean indexing mit DataFrame.plot:

import matplotlib.pyplot as plt 

mask = df['Temperature']> 8.212312312312307 

df1 = df[mask] 
df2 = df[~mask] 
print (df1) 
    Temperature  unit  unit.1 CO2 flux.1 %Root Resp CO2-Rh 
9   10.3 umol/m2/s mg/cm^2/h 0.001166  26.5 0.000857 
10   9.0 umol/m2/s mg/cm^2/h 0.002030  26.5 0.001492 

print (df2) 
    Temperature  unit  unit.1 CO2 flux.1 %Root Resp CO2-Rh 
0   4.5 umol/m2/s mg/cm^2/h 0.001210  26.5 0.000889 
1   4.5 umol/m2/s mg/cm^2/h 0.001339  26.5 0.000984 
2   6.5 umol/m2/s mg/cm^2/h 0.001339  26.5 0.000984 
3   5.3 umol/m2/s mg/cm^2/h 0.001469  26.5 0.001080 
4   4.0 umol/m2/s mg/cm^2/h 0.001598  26.5 0.001175 
5   5.5 umol/m2/s mg/cm^2/h 0.001598  26.5 0.001175 
6   5.0 umol/m2/s mg/cm^2/h 0.001771  26.5 0.001302 
7   5.0 umol/m2/s mg/cm^2/h 0.001944  26.5 0.001429 
8   4.5 umol/m2/s mg/cm^2/h 0.003110  26.5 0.002286 


df1[['Temperature','CO2-Rh']].plot(linewidth=3) 
df2[['Temperature','CO2-Rh']].plot(linewidth=3) 
plt.show() 
Verwandte Themen