小能豆

在 Pandas 中将两个系列合并为一个 DataFrame

py

我有两个具有相同(非连续)索引的 Seriess1和s2。如何将s1和s2合并为 DataFrame 中的两列,并将其中一个索引保留为第三列?


阅读 51

收藏
2024-10-08

共1个答案

小能豆

要将两个 Pandas Seriess1s2)合并为一个,DataFrame并将其一个索引作为第三列,可以按照以下步骤操作:

步骤:

  1. 重置两者的索引Series以将索引变成一列。
  2. 将两者连接Series成一个DataFrame
  3. 或者,您可以重命名列以获得更好的清晰度。

以下是如何执行此操作的示例:

import pandas as pd

# Sample Series with non-consecutive indices
s1 = pd.Series([10, 20, 30], index=[1, 3, 5])
s2 = pd.Series([100, 200, 300], index=[1, 3, 5])

# Combine into a DataFrame, keeping the index as a column
df = pd.concat([s1.reset_index(), s2.reset_index(drop=True)], axis=1)

# Optionally rename the columns for clarity
df.columns = ['index', 's1', 's2']

print(df)

输出:

   index  s1   s2
0      1  10  100
1      3  20  200
2      5  30  300

解释:

  • reset_index()将的索引Series变成一列。
  • pd.concat()``Series沿着列 ( )连接两者axis=1,创建一个新的DataFrame
  • in drop=Truefor用于避免添加额外的索引列(因为它们具有reset_index()相同的索引)。s2``s2
  • 或者,您可以重命名列DataFrame以反映原始名称Series

此方法将原始索引保留为结果中的第三列DataFrame

2024-10-08