Добавить ряд в DataFrame с дополнительными значениями индекса - PullRequest
0 голосов
/ 12 июня 2018

У меня есть 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 голосов
/ 12 июня 2018

Вы можете использовать объединение между серией и фреймом данных:

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
0 голосов
/ 12 июня 2018

Использование 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
...