La combinaison de deux Séries dans un DataFrame dans les pandas
J'ai deux Séries s1
et s2
avec le même (non consécutifs) les indices. Comment puis-je combiner s1
et s2
deux colonnes dans un DataFrame et de garder l'un des indices comme une troisième colonne?
Vous devez vous connecter pour publier un commentaire.
Je pense que
concat
est une belle façon de le faire. S'ils sont présents, il utilise les attributs de nom de la Série comme les colonnes (sinon il simplement les nombres):Remarque: Cela s'étend à plus de 2 de la Série.
pd.merge(s1.reset_index(), s2.reset_index(), how='outer')
?pd.concat([list_of_dataframes])
vs concating de nombreuses foisnew_df = pd.DataFrame(); for df in list_of_dsf: new_df = pd.concat([new_df, df])
ou similaire.Pandas seront automatiquement l'alignement de ces câblés en série et de créer de l'articulation de l'index
Ils se trouvent être la même chose ici.
reset_index
se déplace de l'index d'une colonne.Pourquoi ne pas simplement utiliser .to_frame si les deux ont le même index?
>=
v0.23
<
v0.23
Exemple de code:
Pandas vous permet de créer un
DataFrame
à partir d'undict
avecSeries
que les valeurs et les noms de colonnes comme les clés. Lorsqu'il trouve unSeries
comme une valeur, il utilise leSeries
indice dans le cadre de laDataFrame
index. Cet alignement des données est l'un des principaux avantages de Pandas. Par conséquent, sauf si vous avez d'autres besoins, fraîchement crééeDataFrame
a dupliqué valeur. Dans l'exemple ci-dessus,data['idx_col']
a les mêmes données quedata.index
.Pas sûr que je comprends votre question, mais est-ce ce que vous voulez faire?
(
index=s1.index
n'est même pas nécessaire ici)Une simplification de la solution basée sur
join()
:Si je peut répondre à cette question.
Les fondamentaux de la conversion de la série à la trame de données est de comprendre que
1. Au niveau conceptuel, chaque colonne dans la trame de données est une série.
2. Et, chaque nom de colonne est un nom de clé qui correspond à une série.
Si vous garder au-dessus de deux concepts à l'esprit, vous pouvez imaginer de nombreuses façons de convertir une série de trames de données.
Une solution facile sera comme ceci:
Créer deux séries ici
Créer un vide de la trame de données avec juste souhaité noms de colonne
Mettre valeur de série à l'intérieur du bloc de données à l'aide de la cartographie concept
Résultats de la vérification de maintenant