Les Pandas comment concat deux dataframes sans perdre les en-têtes de colonne
J'ai le texte suivant jouet code:
import pandas as pd
df = pd.DataFrame()
df["foo"] = [1,2,3,4]
df2 = pd.DataFrame()
df2["bar"]=[4,5,6,7]
df = pd.concat([df,df2], ignore_index=True,axis=1)
print(list(df))
De sortie: [0,1]
Résultat attendu: [foo,bar]
(l'ordre n'est pas important)
Est-il possible de concaténer deux dataframes sans perdre l'original en-têtes de colonne, si je peux vous garantir que les en-têtes seront uniques?
Une itération à travers les colonnes, puis les ajouter à l'un des DataFrames vient à l'esprit, mais est-il une pandas fonction, ou concat
paramètre que je ne suis pas au courant de?
Merci!
Passing ignore_index=True will drop all name references.
vous avez besoin pour passer ignore_index?- Comme @umutto dit... laissez
ignore_index=True
ou ne passe pas du tout. - Bien que cela semble fonctionner! Si vous pouviez avoir la gentillesse de poster que comme une réponse, je serais heureux de l'accepter!
Vous devez vous connecter pour publier un commentaire.
Comme indiqué dans de fusion, de rejoindre et concat de la documentation, de l'ignorer indice de supprimer toutes les références à un nom et à l'utilisation d'une gamme (0...n-1) à la place. Il devrait donc vous donner le résultat que vous voulez une fois que vous retirez
ignore_index
argument ou le mettre à false (par défaut).Cela permettra de rejoindre votre df et df2 basée sur des indices (même indexé lignes seront concaténés, si d'autres dataframe n'a pas de membre de cet indice, il sera concaténé que nan).
Si vous avez différente de l'indexation sur votre dataframes, et que vous voulez concaténer cette façon. Vous pouvez soit créer un index temporaire et de le rejoindre sur ce, ou de définir la nouvelle dataframe de colonnes après l'utilisation de concat(..., ignore_index=True).