我有一个如下所示的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
答案 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