Lors de l'affectation d'une valeur de type DataFrame à un DataFrame colonne par colonne, même si l'ordre des données est différent, si les index correspondent, la valeur peut être affectée telle quelle. Il peut être utile de savoir lors de l'extraction de certaines colonnes du DataFrame, de leur traitement selon les conditions et de leur renvoi.
Préparez le module et les données
import numpy as np
import pandas as pd
# 0-4 dans une séquence de 19*Formater en 5 et convertir en dataframe
df = pd.DataFrame(np.arange(20).reshape((4,5)), columns = list("abcde"))
# a b c d e
# 0 0 1 2 3 4
# 1 5 6 7 8 9
# 2 10 11 12 13 14
# 3 15 16 17 18 19
Créer un DataFrame avec quelques colonnes extraites et traiter les valeurs
df_e_1 = df.loc[[0,2], ["e"]]
# e
# 0 4
# 2 14
df_e_1["e"] += 300
# e
# 0 304
# 2 314
Créez un DataFrame avec certaines colonnes extraites et combinez-le avec les données traitées ci-dessus.
df_e_2 = df.loc[[1,3], ["e"]]
# e
# 1 9
# 3 19
df_e = pd.concat([df_e_1, df_e_2])
# e
# 0 304
# 2 314
# 1 9
# 3 19
Je pensais que si df_e n'était pas organisé dans l'ordre d'index ici, l'ordre des données serait dans le désordre même s'il était affecté au DataFrame d'origine ... Même si vous le remplacez tel quel, il correspondra à l'index et sera automatiquement trié et remplacé. Veuillez faire attention à la colonne e ci-dessous
df["e"] = df_e
print(df)
# a b c d e
# 0 0 1 2 3 304
# 1 5 6 7 8 9
# 2 10 11 12 13 314
# 3 15 16 17 18 19