使用其他索引值将Series添加到DataFrame

时间:2018-06-12 19:56:51

标签: python pandas dataframe series

我有一个如下所示的DataFrame:

  Value
1 23
2 12
3 4

一个看起来像这样的系列:

1 24
2 12
4 34

有没有办法将Series添加到DataFrame以获得如下所示的结果:

  Value New
1 23    24
2 12    12
3 4     0
4 0     34

2 个答案:

答案 0 :(得分:2)

使用concat(..., axis=1).fillna()

import pandas as pd

df = pd.DataFrame([23,12,4], columns=["Value"], index=[1,2,3])
s = pd.Series([24,12,34],index=[1,2,4], name="New")

df = pd.concat([df,s],axis=1)
print(df)

df = df.fillna(0)  # or df.fillna(0, inplace=True)
print(df)

输出:

   Value   New
1   23.0  24.0
2   12.0  12.0
3    4.0   NaN
4    NaN  34.0

# If replacing NaNs with 0:

   Value   New
1   23.0  24.0
2   12.0  12.0
3    4.0   NaN
4    NaN  34.0

答案 1 :(得分:1)

您可以在系列和数据框之间使用连接:

my_df.join(my_series, how='outer').fillna(0)

示例:

>>> df
   Value
1     23
2     12
3      4
>>> s
0
1    24
2    12
4    34

>>> type(df)
<class 'pandas.core.frame.DataFrame'>

>>> type(s)
<class 'pandas.core.series.Series'>

>>> df.join(s, how='outer').fillna(0)

   Value     1
1   23.0  24.0
2   12.0  12.0
3    4.0   0.0
4    0.0  34.0