Pandas: Ajout d'une nouvelle colonne à dataframe qui est une copie de la colonne d'index
J'ai un dataframe qui je veux tracer avec matplotlib, mais l'indice de colonne est le temps et je ne peut pas tracer.
C'est le dataframe (df3):
mais quand j'ai essayer le suivant:
plt.plot(df3['magnetic_mag mean'], df3['YYYY-MO-DD HH-MI-SS_SSS'], label='FDI')
J'obtiens une erreur, évidemment:
KeyError: 'YYYY-MO-DD HH-MI-SS_SSS'
Donc ce que je veux faire est d'ajouter une nouvelle colonne à mon dataframe (nommé) qui est juste une copie de la colonne d'index.
Comment puis-je le faire?
C'est l'ensemble du code:
#Importing the csv file into df
df = pd.read_csv('university2.csv', sep=";", skiprows=1)
#Changing datetime
df['YYYY-MO-DD HH-MI-SS_SSS'] = pd.to_datetime(df['YYYY-MO-DD HH-MI-SS_SSS'],
format='%Y-%m-%d %H:%M:%S:%f')
#Set index from column
df = df.set_index('YYYY-MO-DD HH-MI-SS_SSS')
#Add Magnetic Magnitude Column
df['magnetic_mag'] = np.sqrt(df['MAGNETIC FIELD X (μT)']**2 + df['MAGNETIC FIELD Y (μT)']**2 + df['MAGNETIC FIELD Z (μT)']**2)
#Subtract Earth's Average Magnetic Field from 'magnetic_mag'
df['magnetic_mag'] = df['magnetic_mag'] - 30
#Copy interesting values
df2 = df[[ 'ATMOSPHERIC PRESSURE (hPa)',
'TEMPERATURE (C)', 'magnetic_mag']].copy()
#Hourly Average and Standard Deviation for interesting values
df3 = df2.resample('H').agg(['mean','std'])
df3.columns = [' '.join(col) for col in df3.columns]
df3.reset_index()
plt.plot(df3['magnetic_mag mean'], df3['YYYY-MO-DD HH-MI-SS_SSS'], label='FDI')
Merci!!!!!
Super, il est possible d'ajouter 5-6 lignes de
university2.csv
?OriginalL'auteur ValientProcess | 2016-04-29
Vous devez vous connecter pour publier un commentaire.
Je pense que vous avez besoin
reset_index
.Ou:
Mais si vous avez besoin d'une nouvelle colonne, utilisez:
Je pense que vous pouvez
read_csv
mieux:Et puis omettre:
hmmm, je pense que cela peut être de la faute de frappe - essayez
print df.columns.tolist()
et copier exactement les noms de colonne (peut-être dansYYYY-MO-DD HH-MI-SS_SSS
est de la faute de frappe)étrange, quand je l'ai fait, j'ai eu les colonnes sans le temps: ['PRESSION ATMOSPHÉRIQUE (hPa) moyenne', 'la PRESSION ATMOSPHÉRIQUE (hPa) std', 'TEMPÉRATURE (C) moyenne', 'TEMPÉRATURE (C) std', 'magnetic_mag moyenne', 'magnetic_mag std']
Vous avez besoin d'appeler
print df.columns.tolist()
aprèsdf = df.reset_index()
J'ai des erreurs avec l'analyse des dates. Le code de travail - je veux juste ajouter une autre colonne qui est une copie de l'index, pour tracer les fins. Il n'y a pas de moyen simple de faire cela ? 🙁
OriginalL'auteur jezrael
Vous pouvez accéder directement à l'index et de l'obtenir tracées, voici un exemple:
OriginalL'auteur Abbas