如何用其他系列替换 pandas 数据框的子集
How to replace subset of pandas dataframe with on other series
我认为这是一个微不足道的问题,但我无法让它发挥作用。
d = { 'one': pd.Series([1,2,3,4], index=['a', 'b', 'c', 'd']),
'two': pd.Series([np.nan,6,np.nan,8], index=['a', 'b', 'c', 'd']),
'three': pd.Series([10,20,30,np.nan], index = ['a', 'b', 'c', 'd'])}
df = pd.DataFrame(d)
df
one three two
a 1 10.0 NaN
b 2 20.0 6.0
c 3 30.0 NaN
d 4 NaN 8.0
我的系列:
fill = pd.Series([30,60])
我想替换特定的列,让它成为 'two'。在我的名为 fill 的系列中,列 'two' 满足条件:是 Nan。你能帮我吗?
我想要的结果:
df
one three two
a 1 10.0 30
b 2 20.0 6.0
c 3 30.0 60
d 4 NaN 8.0
我认为你需要 loc
和 isnull
for replace numpy array
created from fill
by Series.values
:
df.loc[df.two.isnull(), 'two'] = fill.values
print (df)
one three two
a 1 10.0 30.0
b 2 20.0 6.0
c 3 30.0 60.0
d 4 NaN 8.0
我认为这是一个微不足道的问题,但我无法让它发挥作用。
d = { 'one': pd.Series([1,2,3,4], index=['a', 'b', 'c', 'd']),
'two': pd.Series([np.nan,6,np.nan,8], index=['a', 'b', 'c', 'd']),
'three': pd.Series([10,20,30,np.nan], index = ['a', 'b', 'c', 'd'])}
df = pd.DataFrame(d)
df
one three two
a 1 10.0 NaN
b 2 20.0 6.0
c 3 30.0 NaN
d 4 NaN 8.0
我的系列:
fill = pd.Series([30,60])
我想替换特定的列,让它成为 'two'。在我的名为 fill 的系列中,列 'two' 满足条件:是 Nan。你能帮我吗? 我想要的结果:
df
one three two
a 1 10.0 30
b 2 20.0 6.0
c 3 30.0 60
d 4 NaN 8.0
我认为你需要 loc
和 isnull
for replace numpy array
created from fill
by Series.values
:
df.loc[df.two.isnull(), 'two'] = fill.values
print (df)
one three two
a 1 10.0 30.0
b 2 20.0 6.0
c 3 30.0 60.0
d 4 NaN 8.0